统一配置中心框架选择
转自:
https://www.cnblogs.com/xiaoqi/p/configserver-compair.html
https://cloud.tencent.com/developer/news/460084
为什么需要统一配置中心
程序的发展,需要引入集中配置:
- 配置增多,集中管理更为方便。随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……
- 需要配置实时生效。对配置的期望也越来越高,配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……
- 分布式开发需要。随着采用分布式的开发模式,项目之间的相互引用随着服务的不断增多,相互之间的调用复杂度成指数升高,每次投产或者上线新的项目时苦不堪言,因此需要引用配置中心治理。
已有zookeeper、etcd不能满足需求吗?
zookeeper、etcd有文件存储和通知机制,可以用作配置中心,但是它们有一些缺点:
- 没有方便的UI管理工具。
- 缺乏权限、审核等机制。
- 最重要的是:etcd和zookeeper通常定义为服务注册中心,统一配置中心的事情交给专业的工具去解决。
常见的开源框架
- Apollo(阿波罗),携程开源
- spring-cloud/spring-cloud-config
- diamond,淘宝,已不维护
- disconf,蚂蚁金服
1、功能对比
2、技术路线兼容性对比
3、可用性易用性对比
常用选择
综上,ctrip applo是较好的选择方案,最终选择applo。携程的Apollo 功能强大完善,github上开源社区比较活跃,代码一直在维护,而且文档写得清楚。优点如下:
- 支持不同环境(开发、测试、生产)、不同集群
- 完善的管理系统,权限管理、发布审核、操作审计
- SpringBoot集成友好 ,较小的迁移成本
- 配置修改实时生效(热发布)
- 版本发布管理