对比表
– | Apollo | Nacos | Spring Cloud Config |
---|---|---|---|
.net支持程度 | 支持 | 不支持 | 不支持 |
集成难度 | 稍微麻烦 | 容易 | 麻烦 |
使用广度 | 非常广,很多大中小公司都在用 | 用得也是很广,但是不够Apollo用的广 | – |
客户端支持语言 | JAVA, .Net | JAVA, GO, CPP, PYTHON, NODEJS | JAVA |
社区活跃度 | 活跃 | 活跃 | 活跃 |
权限控制 | 按项目维度配置权限 | 不具备 | 依赖Git的权限管理能力 |
配置发布 | HTTP长链接 | HTTP长链接 | 本身不支持,需依赖Spring Cloud Bus |
集群部署 | 一个控制台多个数据更新推送服务 | 搭建多套服务 | 不同域名切换 |
数据持久化 | MySQL | MySQL | GIT |
隔离 | 环境 | 命名空间 | Label和Profile |
灰度发布 | 支持 | 不支持 | 支持,但不够自动化和体系化 |
版本管理&回滚 | 支持 | 支持 | git支持 |
配置格式校验 | 支持 | 支持 | 不支持 |
总结
建议使用Apollo。
Apollo功能比较齐全,使用比较广,社区比较活跃,有JAVA和.Net的客户端,唯一的缺点就是集成稍微麻烦点;Spring Cloud Config集成麻烦因为要依赖GIT和Spring Cloud Bus,还有,用户使用体验是不很好;Nacos不支持灰度发布,不具备权限管理。
说明
Spring Cloud Config原生不支持配置的实时推送,需要依赖Git的WebHook、Spring Cloud Bus和客户端/bus/refresh端点:
- 基于Git的WebHook,配置变更触发server端refresh
- Server端接收到请求并发送给Spring Cloud Bus
- Spring Cloud Bus接到消息并通知给客户端
- 客户端接收到通知,请求Server端获取最新配置