soul网关学习七之soul-admin使用zookeeper同步数据到网关

上一篇中介绍了使用websocket同步数据,soul也可以使用zk来同步数据

1.配置

引入 zk 相关的jar包
在这里插入图片描述
soul-admin中打开zk配置
在这里插入图片描述

soul-bootstrap中打开 zk配置
在这里插入图片描述
因为使用zk,需要单独启动一个zk。
引用 soul-spring-boot-starter-sync-data-zookeeper
在这里插入图片描述

2. 配置加载

2.1 soul-admin 端

admin端使用spring的事件注册机制在更改配置时发送事件,将修改的配置发送出去。接收事件后将获取的配置修改到zk的节点上。
下面看下源码

2.1.1 发布事件

每个service都会注入 eventPublisher 用来发布配置修改的事件 DataChangedEvent
在这里插入图片描述
在这里插入图片描述

2.1.2 接收事件

DataChangedEventDispatcher 用来接收 DataChangedEvent 事件,该类会加载容器内配置的 DataChangedListener
在这里插入图片描述

public class DataChangedEventDispatcher implements ApplicationListener<DataChangedEvent>, InitializingBean {
   
    private ApplicationContext applicationContext;
    private List<DataChangedListener> listeners;
    public DataChangedEventDispatcher(final ApplicationContext applicationContext) {
   
        this.applicationContext = applicationContext;
    }
//  接收 DataChangedEvent事件后使用循环DataChangedListener处理事件 
    @Override
    @SuppressWarnings("unchecked")
    public void onApplicationEvent(final DataChangedEvent event) {
   
        for (DataChangedListener listener : listeners) {
   
            switch (event.getGroupKey()) {
   
                case APP_AUTH:
                    listener.onAppAuthChanged((List<AppAuthData>) event.getSource(), event.getEventType());
                    break;
                case PLUGIN:
                    listener.onPluginChanged((List<PluginData>) event.getSource(), event.getEventType());
                    break;
                case RULE:
                    listener.onRuleChanged((List<RuleData>) event.getSource(), event.get
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值