当前位置: 移动技术网 > IT编程>软件设计>架构 > 基于ZooKeeper实现简单的配置中心

基于ZooKeeper实现简单的配置中心

2018年09月23日  | 移动技术网IT编程  | 我要评论

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

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

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

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

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

 

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

 

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

 

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

 

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

 

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

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

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

 

 

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网