记录利用spring监听加载配置属性与zookeeper的配置中心结合 , 达到zookper节点信息改变, 服务器内所有的信息都改变 , 提高效率
框架技术简介
Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的开源Java RPC框架,可以和Spring框架无缝集成
ZooKeeper , 分布式文件存储系统管理多个服务 , 类似于磁盘上目录树 , 主要用于维护和监控存储的数据变化 , 适用于存储和协同相关的数据 , 不适合用于大数据量存储
配置中心与spring结合
1. 将jdbc配置文件信息,写入到zookeeper的节点上
1 | RetryPolicy retryPolicy = new ExponentialBackoffRetry(3000,1); |
2. 获取zookeeper上节点的信息
将获取的节点信息写入到spring中的processProperties中的属性集里面
1 | // 将jdbc配置信息 , 载入zookeeper中 |
3.继承spring框架的读取配置文件类
类中继承PropertyPlaceholderConfigure *, *重写processProperties , 将属性集pros 提供该加载方法
1 | public class SettingCenterUtil extends PropertyPlaceholderConfigurer { |
4.配置spring-dao.xml
将外部属性输入改为 类载入 , 由spring核心容器进行管理
1 | <bean id="settingCenterUtil" class="com.itheima.utils.SettingCenterUtil"></bean> |
5.监听zookeeper节点数据的变化(watch机制)
类 实现一个名为ApplicationContextAware的接口,然后重写里面的 setApplicationContext方法 ,获取一个可以刷新的配置XmlWebApplicationContext 的对象;调用refresh方法进行属性刷新
1 | private void addWatch(Properties props) { |
6.加载spring监听器
1 | <context-param> |