常用的配置中心有:
Spring Cloud Config
2014年9月开源,Spring Cloud 生态组件,可以和Spring Cloud体系无缝整合。
Spring Cloud Config原生不支持配置的实时推送,需要依赖Git的WebHook、Spring Cloud Bus和客户端/bus/refresh端点:
1、基于Git的WebHook,配置变更触发server端refresh
2、Server端接收到请求并发送给Spring Cloud Bus
3、Spring Cloud Bus接到消息并通知给客户端
4、客户端接收到通知,请求Server端获取最新配置
Apollo
2016年5月,携程开源的配置管理中心,具备规范的权限、流程治理等特性。
Apollo分为MySQL,Config Service,Admin Service,Portal四个模块:
1、MySQL存储Apollo元数据和用户配置数据;
2、Config Service提供配置的读取、推送等功能,客户端请求都是落到Config Service上;
3、Admin Service提供配置的修改、发布等功能,Portal操作的服务就是Admin Service;
4、Portal提供给用户配置管理界面;
本地测试Config Service,Admin Service,Portal三个模块可以合并一起部署,MySQL单独安装并创建需要的表结构。在生产环境使用Apollo,Portal可以两个节点单独部署,稳定性要求没那么高的话,Config Service和Admin Service可以部署在一起,数据库支持主备容灾。
Nacos
2018年6月,阿里开源的配置中心,也可以做DNS和RPC的服务发现。
Nacos部署需要Nacos Service和MySQL:
1、Nacos对外提供服务,支持配置管理和服务发现;
2、MySQL提供Nacos的数据持久化存储;
单机模式下,Nacos可以使用嵌入式数据库部署一个节点,就能启动。如果对MySQL比较熟悉,想要了解整体数据流向,可以安装MySQL提供给Nacos数据持久化服务。生产环境使用Nacos,Nacos服务需要至少部署三个节点,再加上MySQL主备。
总结
1、Apollo和Nacos相对于Spring Cloud Config的生态支持更广,在配置管理流程上做的更好。
2、Apollo相对于Nacos在配置管理做的更加全面,不过使用起来也要麻烦一些。
3、apollo容器化较困难,Nacos有官网的镜像可以直接部署,总体来说,Nacos比apollo更符合KISS原则。
4、Nacos部署和使用起来相对比较简洁,在对性能要求比较高的大规模场景更适合。
本文对比了SpringCloudConfig、Apollo和Nacos三种配置中心的特性和适用场景。SpringCloudConfig与SpringCloud生态无缝整合,Apollo具备规范的权限和流程治理,Nacos则更适用于大规模高性能场景。
1352

被折叠的 条评论
为什么被折叠?



