前言

我们在平时工作中可能会有这样的需求,系统运行期间需要动态调整配置项,比如:

  • 调整系统告警人
  • 调整活动开关
  • 调整降级开关
  • 调整日志级别

以上这些还不够,随着程序功能的日益复杂对配置的期望也越来越高,还需要满足:

  • 实现分环境、分集群的管理配置
  • 实现配置的灰度发布
  • 配置的发布需要完善的授权机制
  • 配置的发布需要记录发布历史
  • 支持配置回滚到上一个发布版本

怎么解决上述问题,有没有开源产品?

市面上的配置中心

如何选择?大家可以自行翻阅下文档。

我的最终选择是 **Apollo**

  1. 修改/发布配置
  2. 配置更新通知
  3. 获取最新配置

basic-architecture.png

下图是 Apollo 架构模块的概览:

overall-architecture.png

还有哪些应用场景?

应用场景广泛,只要软件中涉及到有本地配置文件的,都可以使用这种方式实现动态配置。

只需要自己实现一个 apollo-client 即可,当配置发生更新时,拉取最新配置信息,然后将配置信息处理成软件所需的配置格式。

小结

这篇文章比较短,主要介绍了为什么需要配置中心以及市面上有哪些开源配置中心可供选择。

Apollo 有完善的管理界面,这个我比较喜欢,哈哈。

推荐阅读

  1. 分布式事务之理解篇
  2. 分布式事务之最终一致性实现方案
  3. 分布式之异步通讯组件选择