Apollo配置中心Client端架构设计有哪些细节需要注意?

摘要:原创文章,转载请标注。https:www.cnblogs.comboyceleep17978027 目录声明配置中心系列文章一、客户端架构1、Config Service职责(1)配置管理(2)配置发布(3)配置读取2、Apoll
原创文章,转载请标注。https://www.cnblogs.com/boycelee/p/17978027 目录声明配置中心系列文章一、客户端架构1、Config Service职责(1)配置管理(2)配置发布(3)配置读取2、Apollo Client 职责(1)配置拉取(2)配置注入(3)配置变更监听3、基本交互流程(1)应用启动(2)配置变更通知(3)配置更新(4)配置注入二、架构思考(1)配置拉取的设计(2)配置的注入方式(3)配置变更的通知机制(4)为什么配置拉取拆分为两个请求?(5)长轮询的概念(6)为什么需要做本地文件缓存?三、源码剖析1、初始化(1)逻辑描述(2)时序图(3)代码位置2、查找注解(1)逻辑描述(2)时序图(3)代码位置3、建立连接(1)逻辑描述(2)时序图(3)具体函数4、拉取配置(1)逻辑描述(2)时序图(3)代码实现a)配置初始化加载(trySync)b)周期配置拉取(schedulePeriodicRefresh)c)长轮询监听与最新配置拉取(scheduleLongPollingRefresh)5、变更通知(1)逻辑描述(2)时序图(2)代码实现6、配置注入(1)逻辑描述(2)代码位置四、最后 声明 原创文章,转载请标注。https://www.cnblogs.com/boycelee/p/17978027 配置中心系列文章 《【架构师视角系列】风控场景下的配置中心设计思考》 https://www.cnblogs.com/boycelee/p/18355942 《【架构师视角系列】Apollo配置中心之架构设计(一)》https://www.cnblogs.com/boycelee/p/17967590 《【架构师视角系列】Apollo配置中心之Client端(二)》https://www.cnblogs.com/boycelee/p/17978027 《【架构师视角系列】Apollo配置中心之Server端(ConfigSevice)(三)》https://www.cnblogs.com/boycelee/p/18005318 《【架构师视角系列】QConfig配置中心系列之架构设计(一)》https://www.cnblogs.com/boycelee/p/18013653 《【架构师视角系列】QConfig配置中心系列之Client端(二)》https://www.cnblogs.com/boycelee/p/18033286 一、客户端架构 架构介绍会从分层、职责、关系以及运行负责四个维度进行描述。 1、Config Service职责 (1)配置管理 Config Service 是Apollo配置中心的服务端组件,负责管理应用程序的配置信息。它存储和维护应用程序的各种配置项。 (2)配置发布 Config Service 负责将最新的配置发布给注册在它上面的Apollo Client。当配置发生变更时,Config Service 负责通知所有订阅了相应配置的客户端。 (3)配置读取 Apollo Client 向 Config Service 发送请求,获取应用程序的配置信息。 2、Apollo Client 职责 (1)配置拉取 Apollo Client 负责向 Config Service 发送配置拉取请求,获取三方应用程序的配置。 (2)配置注入 Apollo Client 将从 Config Service 获取到的配置注入到三方应用程序中。 (3)配置变更监听 Apollo Client 可以注册对配置变更的监听器。当 Config Service 发布新的配置时,Apollo Client 能够感知到配置的变更,并触发相应的操作。 3、基本交互流程 (1)应用启动 Apollo Client 在应用启动时向 Config Service 发送配置拉取请求,获取初始的配置。 (2)配置变更通知 Config Service 在配置发生变更时,通知所有注册的 Apollo Client。 (3)配置更新 Apollo Client 接收到配置变更通知后,向 Config Service 发送请求,获取最新的配置。 (4)配置注入 Apollo Client 将获取到的最新配置注入到应用程序中,以便使用最新的配置信息。 通过以上交互流程达到应用不需要重启,动态配置变更的目的。 二、架构思考 架构师视角系列,在分析一款组件的源码时,需要深入思考其设计背后的动机。
阅读全文