zookeeper配置中心 客户端是集群环境,
我们目前的配置是存放zookeeeper里,客户端启动后,会初始化配置,并放到redis缓存里,
客户端订阅配置中心数据数据更改事件, zookeeper配置更改了,会通知各个客户端配置已更改,
但是会存在这么一个情况,每个集群里的客户端都会读取一份配置,并放入redis里,
我现在的做法是,把配置中心客户端单独抽离成一个工程,只发布一台服务器,感觉这样很low,
(我还有一个方案,就是客户端里先读取redis里的一个标识Key,如果该key没有,先往redis里一个key存入值,其他客户端订阅读取该key,如果key存在,则放弃读取配置操作,这样第一个redis里存入key的客户端在操作完毕以后,再把该key从redis里删除。。)
不知道有遇到这种情况的同学,有什么更好的方案?
可以把key单独做成监控节点,新加的key先去创建该监控节点,如果创建成功,则去写redis,如果失败,则表明已经有,去看版本信息确定是否需要更新,删除节点也类似。
但为什么要同时使用ZK和redis呢?redis做成集群或者slave redis不也一样效果?
######这里有个对Zookeeper的系统教程,是挺不错的:
http://zookeeper.majunwei.com/
######Zookeeper+Spring跨机房容灾系统以及灰度发布版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。