2021-07-17

[zebra源码]GroupDataSource配置变更实时生效

在初始化 GroupDataSource 的时候,会往它的配置管理器 DefaultDataSourceConfigManager中添加了一个配置监听器

代码路径:GroupDataSource#init() -> initConfig();

this.dataSourceConfigManager.addListerner(new GroupDataSourceConfigChangedListener());	public class GroupDataSourceConfigChangedListener implements PropertyChangeListener {		@Override		public synchronized void propertyChange(PropertyChangeEvent evt) {			**refresh**(evt.getPropertyName());		}}

在监听到配置变更(zk或http)的时候,会调用分组ds内部的 GroupDataSource#refresh 方法进行刷新
image.png

#refreshInternal

参考 分组GroupDataSource及其初始化 中初始化的写库和读库的 ds 类型

  1. 刷新写库 writeDataSource#refresh (FailOverDataSource#refresh) 筛选配置中的第一个写库,新建SingleDataSource 替换掉老的,然后销毁老的sds
  2. 刷新读库 readDataSource#refresh (LoadBalanceDataSource#refresh)
  3. 筛选配置中的所有读库,新建SingleDataSource 替换掉老的,然后销毁老的sds

一般是直接重建底层 DataSource连接池 ,不然要根据底层数据库连接池的支持情况来 更新单个属性,这样适配起来就会非常的繁琐, 而这种db配置变更本身是非常低频或者在故障的时候急救措施, 重建 DataSource......

原文转载:http://www.shaoqun.com/a/884616.html

跨境电商:https://www.ikjzd.com/

聚贸:https://www.ikjzd.com/w/1305

空中云汇:https://www.ikjzd.com/w/2684

海淘贝:https://www.ikjzd.com/w/1726


在初始化GroupDataSource的时候,会往它的配置管理器DefaultDataSourceConfigManager中添加了一个配置监听器代码路径:GroupDataSource#init()->initConfig();this.dataSourceConfigManager.addListerner(newGroupDataSourceConfigChangedListener(
costco:https://www.ikjzd.com/w/1680
凹凸曼:https://www.ikjzd.com/w/1392
parenthood:https://www.ikjzd.com/w/2497
2021最新九寨沟门票优惠政策:http://www.30bags.com/a/412728.html
2021最新丽江到虎跳峡游玩全攻略:http://www.30bags.com/a/415866.html
2021最新三亚自由行攻略大全 三亚自助游攻略:http://www.30bags.com/a/420769.html
2021最新台风杨柳路线 今天下午到夜晚或登陆陵水到三亚沿海:http://www.30bags.com/a/433439.html
被两个男人同时前后做 好大快进去快一点受不了了:http://lady.shaoqun.com/a/247602.html
女人在外面和人玩,身体会有这三种现象。一个必须抓一个!:http://lady.shaoqun.com/a/424228.html
女人一旦偷了人,就逃不过这四种变态行为,也无法"假装"!:http://lady.shaoqun.com/a/424229.html
当一个男人爱一个女人爱到极致,他会有生理反应:http://lady.shaoqun.com/a/424230.html
一个女人,一旦她偷了人,就会有这些表现,她会担心:http://lady.shaoqun.com/a/424231.html

No comments:

Post a Comment