开发者社区 > 云原生 > 正文

Nacos中配置中心,为什么不是配置修改了之后,服务端对客户端的长链接广播通知呢?

Nacos中配置中心,配置动态更新是客户端把本地配置发给服务端,让服务端比较configChangeBatchListenResponse.getChangedConfigs(),为什么不是配置修改了之后,服务端对客户端的长链接广播通知呢?

展开
收起
fuxixi 2022-07-04 11:37:54 644 0
3 条回答
写回答
取消 提交回答
  • 当客户端拿到配置后,需要动态刷新,从而保证数据和服务器端是一致的。Nacos采用长轮训机制来实现数据变更的同步,原理如下:
    image.png

    整体工作流程如下:

    • 客户端发起长轮训请求
    • 服务端收到请求以后,先比较服务端缓存中的数据是否相同,如果不通,则直接返回
    • 如果相同,则通过schedule延迟29.5s之后再执行比较
    • 为了保证当服务端在29.5s之内发生数据变化能够及时通知给客户端,服务端采用事件订阅的方式来监听服务端本地数据变化的事件,一旦收到事件,则触发DataChangeTask的通知,并且遍历allStubs队列中的ClientLongPolling,把结果写回到客户端,就完成了一次数据的推送
    • 如果 DataChangeTask 任务完成了数据的 “推送” 之后,ClientLongPolling 中的调度任务又开始执行了怎么办呢? 很简单,只要在进行 “推送” 操作之前,先将原来等待执行的调度任务取消掉就可以了,这样就防止了推送操作写完响应数据之后,调度任务又去写响应数据,这时肯定会报错的。所以,在ClientLongPolling方法中,最开始的一个步骤就是删除订阅事件。

    ——参考链接

    2023-11-30 15:24:31
    赞同 展开评论 打赏
  • Nacos作为一款动态服务发现和配置管理平台,确实可以实现配置修改后,通过长链接广播通知的方式将新的配置推送给客户端。然而,Nacos的配置中心功能并不完全依赖于长链接广播来实现。

    长链接广播通知是一种高效、实时的配置分发方式,它利用TCP长连接来传递配置信息。这种方式的优点是能够实时地将配置更新推送给所有客户端,并且能够有效地减少网络流量和负载。

    然而,长链接广播通知也有一些局限性:

    实现复杂度较高:长链接广播需要维护每个客户端的长连接,并且需要在网络中传递二进制数据。相比之下,基于HTTP的配置分发方式实现起来更加简单、成熟。
    不适用于大规模部署:随着客户端数量的增加,长链接广播通知需要维护的连接数也会急剧增加,这可能会对服务器造成压力。而基于HTTP的配置分发方式可以通过分片、缓存等技术来优化性能。
    兼容性问题:某些客户端可能不支持长链接广播通知,而基于HTTP的配置分发方式更加通用、兼容性更好。
    因此,Nacos的配置中心采用了基于HTTP的配置分发方式。当配置发生变化时,Nacos服务器会将新的配置以HTTP请求的形式发送给客户端。客户端接收到请求后,会根据请求中的配置信息更新本地配置。这种方式实现起来相对简单,适用于大规模部署,并且具有良好的兼容性。

    当然,Nacos也支持长链接广播通知方式。对于需要实时性要求较高的场景,可以使用Nacos提供的长链接广播通知功能来实现实时配置更新。

    2023-11-27 10:05:39
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    Nacos 配置中心的动态更新机制是基于客户端主动拉取的方式实现的。客户端会定期向服务端发送请求,获取最新的配置信息。这种方式的优点是客户端可以自己控制更新频率,避免频繁的广播通知带来的性能开销。
    另外,Nacos 也支持配置变更通知,但是这个功能是通过事件通知的方式实现的,而不是长链接广播。当配置发生变化时,Nacos 会生成一个配置变更事件,并发送给订阅了这个事件的主题。客户端可以通过监听这个主题来获取配置变更的通知。
    总的来说,Nacos 配置中心的动态更新机制是为了在性能和实时性之间找到一个平衡。

    2023-11-25 22:09:40
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Nacos架构&原理 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载