ZooKeeper系列(2)--基于ZooKeeper实现简单的配置中心


ZooKeeper节点的类型分为以下几类:

    1. 持久节点:节点创建后就一直存在,直到有删除操作来主动删除该节点

    2. 临时节点:临时节点的生命周期和创建该节点的客户端会话绑定,即如果客户端会话失效(客户端宕机或下线),这个节点自动删除 

    3. 时序节点:创建节点是可以设置这个属性,ZooKeeper会自动为给定的节点加上一个数字后缀,作为新的节点名。数字后缀的范围是整型的最大值

     4. 临时性时序节点:同时具备临时节点与时序节点的特性,主要用于分布式锁的实现

 

    配置中心使用ZooKeeper的持久节点的特性,将配置信息写入到持久节点。客户端启动时,从ZooKeeper读取配置信息,进而初始化内部资源,达到配置统一管理的目的。再结合ZooKeeper的Watch特性,配置信息变化实时推送到客户端,即时生效,无需重启客户端,达到配置热更新的效果。

 

    基于ZooKeeper实现简易配置中心的实例代码如下:

 

往服务端写入配置,代码如下:

 

客户端从ZooKeeper查询配置,代码如下:

 

以上就是简单的配置中心实现样例。但是还存在以下改进空间:

1.没有对数据变化进行监听,需要在数据变化时实时获取新的配置。(注:Zookeeper的API中的watch只能消费一次,需循环设置监听)

2.可以使用ZKClient或者Curator等ZooKeeper客户端工具,解决了非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等

 

 

欢迎关注我的微信公众号(Sunnick,请扫码关注),随时留言交流~


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM