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

nacos1.x 配置监听,为什么要服务端延迟29.5秒而不是客户端延迟29.5秒呢?

我们目前有2000多微服务在使用nacos做配置中心以及服务发现,client 端每天都会上报十多次:no available server, currentServerAddr : 异常,这个问题我在前面有反馈,重试机制有问题,其实第一次超时即超时,不可能有第二次重试。 最近发现配置监听也有问题,server 会延迟29.5秒返回,这能保证配置变更后,尽快返回,即配置变更后,一次请求就能返回,增大了配置变更获取到的几率,但也使 server 内存暴涨。为何不client 端延迟15秒再次获取呢?

提问69.png

这里 client 端一旦长轮询结束,就又立刻马上长轮询,当微服务数量有限时,这或许很不错,在我个人压测中,当有数百个微服务时,内存就会暴涨,这块是否可以改为:client 端间隔轮询,server端立刻返回?

原提问者GitHub用户ijustyce

展开
收起
学习娃 2023-05-22 16:27:31 187 0
1 条回答
写回答
取消 提交回答
  • 长轮询需要在服务端测有变化时立刻返回response,所以是在服务端持有29.5s。 如果是客户端等待29.5s。 那期间不能最快的感知到变化。

    可以选择升级2.0,长连接之后就不再使用长轮询了。

    原回答者GitHub用户KomachiSion

    2023-05-23 09:46:51
    赞同 展开评论 打赏

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

相关电子书

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