zoukankan      html  css  js  c++  java
  • 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,请扫码关注),随时留言交流~

  • 相关阅读:
    Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能
    linux irq 自动探测
    gpio子系统和pinctrl子系统(下)
    gpio子系统和pinctrl子系统(中)
    gpio子系统和pinctrl子系统(上)
    linux驱动基础系列--linux spi驱动框架分析
    linux驱动基础系列--linux rtc子系统
    linux驱动基础系列--Linux I2c驱动分析
    camera驱动框架分析(上)
    camera驱动框架分析(中)
  • 原文地址:https://www.cnblogs.com/sunnick/p/9688269.html
Copyright © 2011-2022 走看看