在web项目中都会有一些配置信息,如appkey、IP白名单等。这些配置信息数量少,一般会保存到内存、文件或者数据库。有的时候需要动态更新这些配置。当需要在多个应用服务器中修改这些配置文件的时候,需要做到快速、简单、不停止应用服务器的方式修改并同步配置信息到所有应用中去。
可用的的web集群配置方案
· 将配置信息保存在程序代码中,这种方式非常简单,但是每次更新配置的时候都要修改该代码,重新编译,部署应用。显然这个方案很不方便,也不可靠,无法做到袖带的实时生效。对于某些业务需要频繁的修改配置,这样就很不合适了。
· 将配置信息保存在属性文件中。当需要修改配置的时候,直接修改属性文件,这样不需要重新编译,只需要重新部署修改的文件按即可。这个方案如果集群内的机器非常多的话,这简直就是一个噩梦。
· 将配置信息保存在数据库中,或者再从数据库加载到缓存中,当需要修改配置的时候,直接修改数据库,如果还同时使用了缓存的话,需要再将更新后的配置加载到缓存中,这种做法比上面那种要简单,但是面临着单点失效问题。如果数据库宕机了,就不能更新配置。
基于Zookeeper的集群配置管理方案
直接将配置信息保存在Zookeeper中,或者把属性文件内容保存到Zookeeper,当属性文件内容发生变化时,就通知web应用去重新读取配置文件。
这里采用的是Zookeeper的发布与订阅模式,就是发布者将数据发布到Zookeeper的节点上,供订阅者获取数据,实现配置信息的集中式管理和动态更新。使用场景:应用在启动的时候会主动来获取一次配置,同时,在节点上注册一个watcher,这样一来,以后每次配置有更新的时候,都会实时通知到订阅的客户端,从而获取最新的配置信息。这样的场景适合数据量很小,但是数据更新可能比较快的需求。
基于Zookeeper的集群配置管理方案优点
借助Zookeeper实现的配置信息管理方案有如下优点:
1、简单。修改配置的整个过程变的非常简单,用户只需要修改配置,无需进行其他任何操作,配置自动生效
2、可靠。Zookeeper服务集群具有无单点失效的特性,使整个系统更加可靠。即使Zookeeper集群中的一台机器失效,也不会影响整体服务,更不会影响应用配置的更新
3、实时。Zookeeper的数据更新通知机制,可以在数据发生变化后,立即通知给分布式应用程序,具有很强的变化响应能力。
基于zookeeper的web集群配置管理方案
发表于:2017-01-09
作者:digger30
来源:
- 周排行
- 月排行
- 评论排行
-   iOS VPN开发的配置和管理
-   DCMP:基于etcd的配置管理系统
-   远程登录管理,虚拟网络配置
-   本地多用户下git使用ssh管理配置
-   软件配置项测试,你了解多少?
-   配置管理规范(配置项标识和配置审计...
-   使用etcd+confd管理nginx配置
-   iOS VPN开发的配置和管理
-   配置管理规范(配置项标识和配置审计...
-   配置管理工作流程
-   互联网行业的配置管理
-   DCMP:基于etcd的配置管理系统
-   cmmi配置管理
-   配置管理不只解决软件版本受控的问题
-   从软件出发,非功能测试思考总结
-   展望2017,谁是网络技术头牌?
-   C/C++单元测试工具Visual Unit 4 介绍
-   国内外最好用的6款Bug跟踪管理系统
-   性能测试指标评估必读
-   百度软件测试方案模板
-   38张史上最全的IT工程师技能图谱
-   C/C++单元测试工具Visual Unit 4 介绍
-   2019年,你会选哪些安全测试工具?
-   十款Web服务器性能压力测试工具
-   软件测试入门指南:周期、模型和文档化
-   记自动化测试成神学习之路
-   软件测试全景图 -最全的思维导图