ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Apollo配置中心-配置热发布如何实现
[打印本页]
作者:
用多少眼泪才能让你相信
时间:
2024-8-18 13:23
标题:
Apollo配置中心-配置热发布如何实现
引言
配置中心在微服务架构体系中黑白常紧张的底子设施服务,承担着分布式配置集中管理、配置热发布以及审计等紧张的职责。本文重要探究Apollo配置中心的配置热发布特性如何实现。
配置热发布如何实现
1、配置发布主流程
如上图所示,配置发布的主流程如下:
(1)用户通过Portal向AdminService发布配置信息;
(2)AdminService在配置发布后会往ReleaseMessage表插入一条消息记录;
(3)ConfigService中包含了一个定时线程,该定时线程每秒扫描一次ReleaseMessage表,查抄表中是否有新的消息记录;
(4)假如存在配置更新,ConfigService就会关照全部的消息监听器;
(5)关照Controller会根据发布的配置信息关照对应的客户端;
客户端与配置中心的大致交互如下所示:
这里的配置更新推送其实并不是真正进行信息推送,而是通过长轮询来实现配置的更新。实际上并不是配置的更新推送,而是配置更新关照的推送,客户端拿到关照后必要进一步获取具体的变化的配置信息。
2、长轮询
(1)假如利用Push方式推送数据会有什么问题?
服务端必要与客户端创建长连接,服务端有数据更新的时候可以进行数据推送,数据更新比较实时。但是服务端无法感知客户端的处理能力,可能会造成数据积压。另外集群环境下部分节点不在线会关照失败,等客户端又在线后必要进行补偿推送,节点还有可能存在扩容等各种环境。对于配置中心这种业务场景来说,通过Push方式实现数据推动显得复杂了。
(2)假如利用Pull方式拉取数据会有什么问题?
Pull模式重要是通过客户端主动向配置中心进行数据哀求,拉取对应的配置信息。由于是客户端主动拉取,因此不会出现数据堆积的问题。但是数据如何去拉,什么时间去拉,拉的频率如何控制,这些都是问题。假如频率过高,而配置并未更新,那么就会对服务端造成不须要的连接压力。假如频率过低,那么配置更新就会存在延时的问题。因此同样不适合配置中心的业务场景。
(3)长轮询
客户端向配置中心进行哀求,配置中心不会立即返回响应,而是会hold住这个哀求直到指定时间超时后进行返回。假如没有配置变更,则返回Http状态码304给客户端。超时返回后,客户端将再次发起哀求。
假如存在配置变更,将返回对应的namespace信息,客户端根据namespace信息获取对应的配置信息。
另外为了保证配置的有效性,客户端也会定时哀求配置信息,防止配置更新可能出现的异常环境,是一种数据保证的兜底fallback机制。另外当获取到配置后,会同步到本地配置文件中 。如许即便客户端与配置中心无法通讯,客户端也可以从本地配置文件中获取配置信息。
那么问题来了,为什么不直接在长轮询的响应中直接回复配置信息呢?重要是由于自己已经存在了定时拉取配置的步骤,那么为了保证单一原则以及代码上的简洁以及复用。所以通过这种获取配置更新后再进行数据拉取的方式。
3、客户端获取配置信息
我们一起看下客户端如何工作流程,如下图:
(1)ConfigServiceLocator:重要负责向Eruka注册中心获取ConfigService地址列表信息;
(2)RemoteConfigLongPollService:从ConfigServiceLocator获取到地址列表信息后,通过长轮询的方式获取配置变更信息;
(3)RemoteConfigReposity:从ConfigService获取变更的配置数据;
(4)LocalFileConfigReposity:把配置数据固化到本地,同时作为本地配置数据的泉源;
(5)DefaultConfig:重要和业务方进行交互,提供配置获取方法,同时可以注册配置变更事件。
总结
本文重要探究了Apollo配置中心配置热发布的相干内容,分析了为什么长轮询是比较适合配置中心的数据交互方式。在今后的架构设计中我们也可以以此来作为参考。另外客户端的设计中,也体现了了分层以及职责单一的代码风格,我们自己在实际项目开发中也比较有借鉴的意义
————————————————————————————————————————————————
©著作权归作者全部:来自51CTO博客作者慕枫技术笔记的原创作品,请接洽作者获取转载授权,否则将追究法律责任
Apollo配置中心如何实现配置热发布
https://blog.51cto.com/u_15474618/4905554
————————————————————————————————————————————————
可参考:
微服务架构~携程Apollo配置中心架构剖析
官方文档
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4