美文网首页
关于配置集中化的笔记

关于配置集中化的笔记

作者: 萧然AND沐橦 | 来源:发表于2018-01-09 10:46 被阅读17次

    集中配置分析

    场景需求

    • 服务增多,机器增多,需要对不同服务的多个机器的配置更新简单化,一次性全部,自动发现主动变更。
    • 统一平台管理,方便操作。
    • 能够回滚。
    • 能够处理异常情况,如 断网,机器退出。
    • 配置更新要及时,读取要快。
    • 不同环境的支持。
    • 配置方便地导入和导出。

    场景特点

    • 读多写少,读取可采用无锁方案(乐观方式+版本号或者md5方式)
    • 只在本地不存在时或者远端更新了,客户端菜从配置中心拉取最新配置。
    • 配置文件一般相对很小,可以使用分布式一致组件自带的存储空间进行存储

    360 QConf 实现分析

    功能比较全面,实现起来相比较Diamond、Disconf等稍简单些。

    整体思路如下:

    1. zk作为变更的通知,服务端有单独线程watch配置变更,一发现变更,客户端注册事件。
    2. 事件处理线程处理事件,将变更入写队列
    3. 配置信息存储在内存中(共享内存),以kv的方式
    4. 客户端从kv中读取不到配置时,加入客户端的mq中,mq线程处理不命中,将需要写入的值序列化,入写队列
    5. 单独线程定时遍历共享内存,检查配置是否最新,有失效的,获取最新的,将变更入写队列
    6. 持久化采用本地文件方式,定时dump共享内存到文件中,出现故障时,可以保证有配置可读
    7. 数据通信采用的是http方式。
      单一的写端,使得可以用乐观的方式读取配置。通过配置的md5值来校验是否当前是最新的配置信息

    相关文章

      网友评论

          本文标题:关于配置集中化的笔记

          本文链接:https://www.haomeiwen.com/subject/etjwnxtx.html