Soul 源码阅读 04|Zookeeper 同步数据分析
一、使用 Zookeeper 进行数据同步
修改 soul-admin 和网关的配置,同步方式都设置成 zookeeper
二、soul-admin 更新 zookeeper 节点
soul-admin 在启动的时候,如果 zookeeper 中之前不包含 soul 的节点信息,会将数据全量写入 zookeeper 。
复制代码
复制代码
后续数据发生变更时,会通过
ApplicationEventPublisher
发布变更事件,ZookeeperDataChangedListener
监听到事件后,更新 zookeeper 的节点。
例:
复制代码
复制代码
三、网关接收处理数据变动
网关在建立连接时,就通过 zookeeper 的 watch 机制,开启了对配置信息节点的监听
复制代码
当监听的节点发生变动时,会通知到对应的订阅器 AuthDataSubscriber
, MetaDataSubscriber
, PluginDataSubscriber
,做数据处理。
例:
复制代码
复制代码
版权声明: 本文为 InfoQ 作者【哼干嘛】的原创文章。
原文链接:【http://xie.infoq.cn/article/e8f9a93e356bd81d5ef906b5e】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论