disconf-client 流程图
2017-08-30 14:33:43 0 举报
disconf-client执行流程图
作者其他创作
大纲/内容
CustomConfiguration类
- setApplicationContext()
总入口
ReloadablePropertiesFactoryBean类
# reload()
判断配置文件是否更新如果是,则调用 mergeProperties()读取最新*.properties配置
否
ConfigMgrImpl类
+ updateItemValue()
判断配置内容是否改变更新 配置项/配置文件 的值
是
DisconfMgr类
+ secondScan()
进行第二次扫描(处理动态数据,即回调函数)
创建 znode监控节点并set Watcher
- pullProps()
加载最新配置到 CustomConfiguration.properties中
更新配置三步骤下载、注入到仓库、Watch
数据是否同步
是否存在key的监听实例
Tomcat启动
# processProperties() 只在初始化 bean时执行一次
1. 获取所有的配置2. 调用 reload()方法3. 处理占位符配置
+ setLocation()
获取配置文件资源的全路径
获取所有最新*.properties配置
ConfigUpdateController类
+ updateFile()+ updateFileWithText()+ updateItem()
用户修改配置
通知 disconf-client更新配置
- initDisconfMgrBean()
手动初始化 DisconfMgrBean
是否开启 disconf功能
继续其他操作...
下载:FetcherMgrImpl - downloadFileFromServer()注入仓库:DisconfStoreFileProcessorImpl - inject2Store()Watch:WatchMgrImpl - watchPath()
+ notifyZookeeper()
初始化 CustomConfiguration等 bean类
第一次加载?
处理*.properties配置文件invokeBeanFactoryPostProcess() - postProcessBeanFactory() - processProperties()
ConfigConsistencyMonitorServiceImpl类
+ checkSync()
每30分钟校验一次client端是否与服务端数据同步
disconf-web端
ConfigUpdaterKey接口
+ reloadDisconfKey()
调用key变化的回调方法
DisconfFileCoreProcessorImpl类
+ updateOneConfFile() - watchPath()
+ updateOneConfFile()
+ firstScan()
1. 进行第一次扫描(处理静态数据)2. 初始化Scan,Core模块,扫描用户类的相关注解信息并注册到配置仓库里
NodeWatcher类
+ process()
触发结点更新回调函数
重新set Watcher(第一次加载之后,不做此操作)
配置发生改变?
收藏
收藏
0 条评论
回复 删除
下一页