QConfig配置中心Server端架构设计,有哪些关键点需要注意?
摘要:声明 原创文章,转载请标注。https:www.cnblogs.comboyceleep18055933 配置中心系列文章 《【架构师视角系列】风控场景下的配置中心设计思考》 https:www.cnblogs.comboy
声明
原创文章,转载请标注。https://www.cnblogs.com/boycelee/p/18055933
配置中心系列文章
《【架构师视角系列】风控场景下的配置中心设计思考》 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
《【架构师视角系列】QConfig配置中心系列之Server端(三)》https://www.cnblogs.com/boycelee/p/18055933
一、通知与配置拉取
二、设计思考
1、Admin如何通知Server所有实例配置发生变更?
2、Server如何通知Client端配置发生变更?
3、Client如何拉取配置?
三、源码分析
1、Admin配置推送
1.1、主动推送
1.1.1、逻辑描述
QConfig的Server配置发现有两种方式,一种是主动推送,另一种是被动扫描。
主动发现是Admin(管理平台)通过注册中心获取到已经注册的Server实例相关IP与Port信息,然后通过遍历的方式调用Server接口通知实例此时有配置更新。
被动发现是Server实例中自主定时进行数据库扫描,当发现新版本时通知Client端有配置变更。
1.1.2、时序图
1.1.3、代码位置
1.1.3.1、NotifyServiceImpl#notifyPush
当用户在操作平台进行配置修改时,会调用该接口进行配置变更推送,由于需要通知所有已经部署的Servers有配置更新,所以需要从注册中心中获取到对应的Host信息,然后通过遍历的方式进行配置推送。
