目标
- 高效地浏览和更新配置
- 无需app重启改变系统行为
Twitter ConfigBus动态配置服务
- 存储配置的数据库
- 分发配置的pipeline
架构
ConfigBus 本身是一个存放配置的git repo,配置的改变会经过pipeline到达Twitter的数据中心,一般的操作步骤是
- 配置更改commit to repository
- Validation 批准更改,推送到服务器
- Git post-receive hooks 更新ZooKeeper
- ZooKeeper Watcher 启动
- ConfigStore(staging) fetch最新的配置
- Destination machine 访问ZooKeeper寻找有相同SHA的ConfigStore, 找到后跑rsync同步更新
- App(用ConfigBus client library)发现配置更新,读取配置
To be continued...
Source:
Dynamic configuration at Twitter