soul网关-8-数据同步机制之http长轮询(1)

本文介绍了soul网关如何使用http长轮询进行数据同步,不同于传统的长轮询,它确保了配置更新的准确性。通过分析源码,展示了从初始化、接口调用到内存缓存更新的整个过程,揭示了其在处理配置变更时的策略。
摘要由CSDN通过智能技术生成

之前的笔记里面学习了soul网关数据同步机制之websocket,soul网关还支持其他的数据同步方式,例如zookeeper、http长轮询。

大家熟知的http长轮询是由ajax发起的,当服务器收到客户端发来的请求后,服务器端不会直接进行响应,而是先将这个请求挂起,然后判断服务器端数据是否有更新。如果有更新,则进行响应,如果一直没有数据,则到达一定的时间限制(服务器端设置)才返回。

soul网关里面的长轮询是不是传统的长轮询,本次就来学习一下soul网关是如何使用http长轮询来进行数据同步的。

在这里插入图片描述

第一篇笔记里面已经梳理过soul网关源码的模块结构,知道了soul-sync-data-center是数据同步相关的代码。我们就直接找到soul-sync-data-center/soul-sync-data-http里面去看一下HttpSyncDataService.java这个类。

先看一下HttpSyncDataService是怎么被注入到spring容器的:

HttpSyncDataConfiguration这个被@Configuration注解的类里面,注入了HttpSyncDataService这个bean。

    @Bean
    public SyncDataService httpSyncDataService(final ObjectProvider<HttpConfig> httpConfig, final ObjectProvider<PluginDataSubscriber> pluginSubscriber,
                                           final ObjectProvider<List<MetaDataSubscriber>> metaSubscribers, final ObjectProvider<List<AuthDataSubscriber>> authSubscribers) {
        log.info("you use http long pull sync soul data");
        return new HttpSyncDataService(Objects.requireNonNull(httpConfig.getIfAvailable()), Objects.requireNonNull(pluginSubscriber.getIfAvail
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值