Soul源码分析 —— 同步配置数据的方式汇总

Soul源码分析 —— Soul同步配置数据的方式

数据同步方式

  • long polling同步配置数据:
    代码实现比较简单,易于维护,long polling会大量占用连接池的资源,影响系统的并发数

  • zookeeper同步配置数据
    使用zookeeper同步机制也是非常好的,时效性也高,但是也要处理zk环境不稳定,集群脑裂等问题. 如果zookeeper已经在当前系统中广泛使用,那用它作为同步机制是个很好的选择。否则增加一个新的外部依赖也是一个需要考量的点。

  • nacos同步配置数据
    阿里的nacos功能非常强大,可以同时作为注册中心和配置中心, 但是使用它来同步配置数据有点太heavy了。和zookeeper一样,如果nacos已经在当前系统中使用,那用它作为同步的机制是个很好的选择。

  • websocket同步配置数据
    特点: WebSocket对比http long poll节省系统资源,对比使用zookeeper少了一个系统依赖。所以它是soul的默认选项

配置

配置上需要加上不同的同步机制的starter

<dependency>
    <groupId>org.dromara</groupId>
    <artifactId>soul-spring-boot-starter-sync-data-xxx</artifactId>
    <version>${
   last.version}</version>
</dependency>

在网关和soul-admin上需要增加对应的参数,这里就不再赘述了

使用配置数据的订阅

websocket

以websocket为例,WebsocketSyncDataService建立和client的连接和断开重连

String[] urls = StringUtils.split(websocketConfig.getUrls(), ",");
        executor = new ScheduledThreadPoolExecutor(urls.length, SoulThreadFactory.create("websocket-connect", true));
        for (String url : urls) {
   
            try {
   
                clients.add(new SoulWebsocketClient(new URI(url), Objects.requireNonNull(pluginDataSubscriber), metaDataSubscribers, authDataSubscribers));
            } catch (URISyntaxException e
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值