配置中心开源方案特性对比

 

功能点 configMap zk ctrip apollo nacos
易用性 上手难度高,业务开发同事需要一定的k8s知识,否则需要运维配合操作 中文文档充分,易上手 UI界面复杂,中文文档充分,有一定的学习成本 中文文档充分,易上手
高可用 基于k8s的etcd集群 基于paxos算法内部选举,支持集群模式 基于eureka实现集群模式 基于raft算法内部选举,不需要额外的中间件即可支持集群模式
配置生效 秒级别热更新生效 秒级别热更新生效 秒级别热更新生效 秒级别热更新生效
多语言 SDK: Java(不支持配置更改监听);可以编写代码在 Pod 中运行,使用 Kubernetes API 来读取 ConfigMap 支持C、java、Perl、Python、Go等; 官方SDK: java、.net;第三方SDK: Go、PHP;支持HTTP API调用 官方SDK: 官方SDK: java、Go、Python等;支持HTTP API调用 SDK:
改造成本 强依赖k8s,且SDK缺乏,需要编写代码自实现相关功能 集成SDK后代码侵入低 集成SDK后代码侵入低 集成SDK后代码侵入低
多数据中心 支持 支持 支持
易维护 kubernetes子集,维护成本低 除了注册中心应用本身,不需要额外维护中间件 除了注册中心应用本身,还需要额外维护eureka 除了注册中心应用本身,不需要额外维护中间件
UI支持 不支持,但可集成其他工具实现 支持 官方自带UI 官方自带UI
鉴权 以项目为颗粒度对UI登录用户/客户端调用鉴权,支持只读/读写颗粒度的权限控制 以项目为颗粒度对UI登录用户/客户端调用鉴权,不支持只读/读写颗粒度权限控制 以环境为颗粒度对UI登录用户/客户端调用鉴权,支持只读/读写颗粒度的权限控制
审计 - 支持审计日志,可以清晰查看每次操作时变更的配置条目和变更前后对比 支持审计日志,仅记录了变更前的原记录,未展示变更的配置条目以及变更前后对比
灰度 - 对指定IP集灰度发布 对指定IP集灰度发布
历史记录 有历史记录 无历史记录,但集成其他工具实现

 
 
参考链接:
https://blog.csdn.net/qq_33591055/article/details/108700527
https://blog.csdn.net/qq_33589510/article/details/112503794
https://www.jianshu.com/p/2d79ac04d2dc
https://blog.csdn.net/u013536232/article/details/85038336
 
如有不对,烦请指出,感谢~