关于配置集中化的笔记

2018-01-09  本文已影响17人  萧然AND沐橦

集中配置分析

场景需求

场景特点

360 QConf 实现分析

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

整体思路如下:

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

猜你喜欢

热点阅读