开源配置中心对比选型

Wu Jun 2018-10-27 21:08:40
Categories: > Tags:

1 开源配置中心对比矩阵

调研于 18 年 10 月

重要性 spring-cloud-config ctrip apollo 百度 disconf 淘宝 diamond
概况 Github 地址
929star,688fork
始于 2014,最后更新 8 天前
Github地址
6007star,2187fork
始于2016,最后更新 3天前
文档见 github wiki
Github 地址
3935star,1880fork
文档地址
始于 2014,作者去滴滴了,2016 停止维护
Github
203star,247fork
官方开源地址
团队博客
始于 2012,2014 停止维护
外部依赖 RabbitMQ 或 Kafka MySQL Mysql、zookeeeper、Redis
功能特性
静态配置管理 高 基于 file 支持 支持
动态配置管理 高 支持 支持 支持
统一管理 高 无,需要 github 支持 支持
多维度管理 中 无,需要github 支持
以项目为坐标,每项目下多环境
支持
以环境为坐标,一环境下多项目
本地配置缓存 高 无 支持 支持
配置生效时间 高 重启生效,或手动 refresh 生效。
实时生效需要 git webhook + rabbitmq
实时 实时
配置更新推送 高 需要手工触发 支持 支持
配置定时拉取 高 无 支持 依赖事件驱动,client 重启或者 server 端推送操作
用户权限管理 中 无,需要 github 支持 支持
授权、审核、审计 中 无,需要 github 支持 无
配置版本管理 高 Git 做版本管理 界面上直接提供发布历史和回滚按钮 操作记录有落数据库,但无查询接口
配置合规检测 高 不支持 支持(但还需完善)
实例配置监控 高 需要结合springadmin 支持 支持,可以查看每个配置在哪些机器上加载
灰度发布 中 不支持 支持 不支持
告警通知 中 不支持 支持,邮件方式告警 支持,邮件方式告警
技术路线
支持SpringBoot 高 原生支持 支持 与 spring boot 无相关
支持 SpringCloud 高 原生支持 支持 与 spring cloud 无相关
客户端支持 低 Java Java、.Net java
业务系统侵入性 高 侵入性弱 侵入性弱 侵入性弱
依赖组件 高 Eureka Eureka zookeeper
可用性
单点故障(SPOF) 高 支持 HA 部署 支持 HA 部署 支持 HA 部署,高可用由 zookeeper 保证
多数据中心部署 高 支持 支持 支持
配置获取性能 高 unkown unkown(官方说比spring快)
易用性
配置界面 中 无,需要通过 git 操作 统一界面(ng 编写) 统一界面
配置文档 中 配置数据库、git地址、kafka 配置数据库信息 配置数据库、redis、zookeeper
案例

2 最终选择

根据上述对比,主要在 Spring Cloud Config 与 Ctrip Apollo 之间选择,最终选择了Apollo,主要原因是: