什么是配置中心
配置是用来动态修改程序执行状态的一种机制
为什么要使用配置中心
安全性:配置跟随源代码保存在代码库中,容易造成配置泄漏。
时效性:修改配置,需要重启服务才能生效。
局限性:无法支持动态调整:例如日志开关、功能开关。
因此,分布式配置中心应运而生!
配置中心类型方式
Apollo,java开发 —– 运维成本比高
Apollo分为MySQL,Config Service,Admin Service,Portal四个模块,MySQL存储Apollo元数据和用户配置数据; Config Service提供配置的读取、推送等功能,客户端请求都是落到Config Service上; Admin Service提供配置的修改、发布等功能,Portal操作的服务就是Admin Service; Portal提供给用户配置管理界面;功能强大,社区活跃,但较为复杂,部署组件较多,运维成本比高
Nacos, go开发
依赖:不依赖其他组件
应用内/外:属于外部应用,侵入性小
ACP原则:遵循CP原则(一致性+分离容忍) 服务注册稍慢,由于其一致性导致了在Leader挂掉时重新选举期间真个Nacos不可用。
版本迭代:目前仍然进行版本迭代
集成支持:支持SpringCloud K8S集成
访问协议:HTTP/DNS
雪崩保护:不支持雪崩保护
集成:SpringCloud集成,K8S集成
自动注销实例:不支持
界面:英文界面,不符合国人习惯
上手:复杂一点
Nacos,依赖:mysql —–
依赖:mysql
应用内/外:属于外部应用,侵入性小
ACP原则:通知遵循CP原则(一致性+分离容忍) 和AP原则(可用性+分离容忍)
版本迭代:目前仍然进行版本迭代,最近的提交是几天前
集成支持:支持Dubbo 、SpringCloud、K8S集成
访问协议:HTTP/动态DNS/UDP
雪崩保护:支持雪崩保护
Spring cloud config java开发 —– Net支持比较差
自动注销实例:支持
界面:国产服务,中文界面,符合国人习惯
上手:极易,中文文档,案例,社区活跃
Nacos实际上是和Nacos比较相似的产品,虽然Nacos目前的主要发展方向放在了Service Mesh,但是Nacos最初支持的服务发现和配置管理,也是Nacos的两大功能。虽然Nacos在Nacos之后以与之相似的部署架构开源,但这并不意味着Nacos在功能和架构上也模仿Nacos,Nacos的架构和功能是由阿里巴巴内部十年的运行演进经验得来,所以二者的比较也一定会让大家更加了解他们的定位和演进方向是完全不一样的。