disconf原理解析

5 篇文章 0 订阅
1 篇文章 0 订阅

之前有了解过disconf,也知道它是基于zookeeper来做的,特意写了文章记录下自己的见解。如有错误,欢迎指正。

1、disconf-web会在启动时,将自身的host和配置文件注册到zookeeper上。配置文件会在zk上生成node。

2、client 端启动时,会有一个BeanDefinitionRegistryPostProcessor的实现类DisconfMgrBean,该类主要你实现了扫描(firstScan,加载系统配置和配置文件,进行包扫描并入库,然后获取获取数据/注入/Watch。)、注册DisconfAspectJ(切面,判断是否启用了ENABLE_DISCONF注解,返回disconf仓库中对应的属性值) 和 bean属性注入(获取仓库中对应的属性值,通过setMethod.invoke或者field.set方法来设置值)。

3、disconf的配置动态更新借助于zk的watch机制(watch机制是zk 3大重要内容之一,其余两个是zk协议和node存储模型)实现的,初始化流程会中会对配置文件注册watch,这样当配置文件更新时,zk会通知到client,然后disconf-client再从disconf-web中获取最新的配置并更新到本地,这样就完成了配置动态更新。

小结:disconf更新配置 -> disconf-web保存配置到DB->更新zookeeper上node信息 -> zookeeper通知client有配置更新 -> client 从 disconf-web下载对应配置 -> 更新仓库和bean属性 -> 调用回调信息到ZK,让ZK知道已经更新了node -> 更新配置完成。

 

文章参考: disconf原理 “入坑”指南

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值