配置中心开源方案特性对比
功能点 | 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
如有不对,烦请指出,感谢~