集中式配置中心的作用和原理是什么?
简介:
一般普通开发下,我们都把程序配置设置保存在json或者xml文件中,然后程序中读取,来解耦(no hard coding).而传统的配置文件方式无法满足开发人员对于程序的动态更改(配置格式不标准、不统一,修改配置需要重新发布应用,不能动态调整),因此需要一个配置中心来管理配置文件
微服务建议用集中式配置中心,推荐携程开源的apollo,自带完善的配置管理界面
携程apollo地址apollo github 配置中心开源组件对比和介绍可以看这个大佬的博文集中式配置中心
图示:
可以看到服务连接到配置中心,可以通过pull(轮询或者长轮询)或push(建立TCP长链接,然后定时发送心跳包)方式实时更新配置,这两种方法各有优劣.
先提一个概念:
什么是高可用?
高可用(High Avaliability)是分布式系统架构设计中需要考虑的因素之一,是指通过设计减少系统不能提供服务的时间.保证系统高可用,架构设计的核心准则是:冗余.因此我们看到,协程的apollo冗余了两份.
Apollo
开发人员可以在服务端修改配置,客户端有缓存设置,客户端也会定期将配置缓存到本地.服务端配置变更会推送到客户端,客户端定期向服务端拉取配置(push和pull的结合,保证实时性和可靠性)