统一配置中心框架选择

转自:
https://www.cnblogs.com/xiaoqi/p/configserver-compair.html
https://cloud.tencent.com/developer/news/460084

为什么需要统一配置中心

程序的发展,需要引入集中配置:

  1. 配置增多,集中管理更为方便。随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……
  2. 需要配置实时生效。对配置的期望也越来越高,配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……
  3. 分布式开发需要。随着采用分布式的开发模式,项目之间的相互引用随着服务的不断增多,相互之间的调用复杂度成指数升高,每次投产或者上线新的项目时苦不堪言,因此需要引用配置中心治理。

已有zookeeper、etcd不能满足需求吗?

zookeeper、etcd有文件存储和通知机制,可以用作配置中心,但是它们有一些缺点:

  1. 没有方便的UI管理工具。
  2. 缺乏权限、审核等机制。
  3. 最重要的是:etcd和zookeeper通常定义为服务注册中心,统一配置中心的事情交给专业的工具去解决。

常见的开源框架

  1. Apollo(阿波罗),携程开源
  2. spring-cloud/spring-cloud-config
  3. diamond,淘宝,已不维护
  4. disconf,蚂蚁金服

1、功能对比

统一配置中心框架选择
2、技术路线兼容性对比
统一配置中心框架选择

3、可用性易用性对比
统一配置中心框架选择

常用选择

综上,ctrip applo是较好的选择方案,最终选择applo。携程的Apollo 功能强大完善,github上开源社区比较活跃,代码一直在维护,而且文档写得清楚。优点如下:

  1. 支持不同环境(开发、测试、生产)、不同集群
  2. 完善的管理系统,权限管理、发布审核、操作审计
  3. SpringBoot集成友好 ,较小的迁移成本
  4. 配置修改实时生效(热发布)
  5. 版本发布管理

相关文章: