nacos客户端(接口调用者)如何感知被调用服务下线?(一)

news/2025/10/18 8:52:12/文章来源:https://www.cnblogs.com/jelly12345/p/19149167
Nacos 客户端(接口调用者)感知被调用服务下线的过程,依赖于 Nacos 的服务注册与发现机制、健康检查机制以及客户端缓存更新策略。核心逻辑是:Nacos 服务器实时维护服务实例状态,客户端通过 “主动拉取 + 被动推送” 结合的方式,实时同步服务实例变化,最终感知到服务下线。

一、服务下线的两种场景

被调用服务(服务提供者)下线分为两种情况,Nacos 对这两种情况的处理方式不同,客户端的感知路径也略有差异:

1. 主动下线(正常退出)

服务提供者因 “优雅停机”(如执行shutdown命令、调用 Nacos API 注销)主动下线时,会向 Nacos 服务器发送注销请求,明确告知 “当前实例需下线”。

2. 异常下线(崩溃 / 网络故障)

服务提供者因 “进程崩溃、服务器宕机、网络中断” 等异常情况被动下线,无法主动通知 Nacos,此时依赖 Nacos 的健康检查机制发现实例不可用,进而标记为下线。

二、Nacos 服务器如何处理服务下线

无论主动还是异常下线,Nacos 服务器都会先更新服务实例状态,为客户端感知提供基础:

1. 主动下线的处理

  • 服务提供者调用 Nacos 的NamingService.deregisterInstance()方法,向服务器发送注销请求;
  • Nacos 服务器接收到请求后,立即将该实例从 “健康实例列表” 中移除,并更新服务的元数据(如实例数量、状态)。

2. 异常下线的处理(健康检查)

Nacos 通过客户端心跳上报和服务器端主动探测两种方式检测服务健康状态:
  • 客户端心跳上报(默认方式):
     
    服务提供者启动后,会定期(默认 5 秒)向 Nacos 服务器发送心跳包(包含实例 ID、服务名等信息);
     
    Nacos 服务器维护一个 “心跳超时计数器”,若超过15 秒未收到心跳(可配置),则将实例标记为 “不健康”;若超过30 秒未收到心跳,则将实例从健康列表中移除(视为下线)。
  • 服务器端主动探测(可选):
     
    若配置为服务器端探测(如 TCP 端口探测、HTTP 接口探测),Nacos 服务器会定期(如每 2 秒)向服务实例发送探测请求;
     
    若连续多次(如 3 次)探测失败,服务器会将实例标记为下线。

三、客户端(调用者)感知服务下线的核心机制

Nacos 客户端(调用者)通过 **“本地缓存 + 服务端推送 + 定时拉取”** 三重机制,实时同步服务实例状态,从而感知下线:

1. 本地缓存:客户端维护服务实例快照

调用者启动时,会从 Nacos 服务器全量拉取目标服务的所有健康实例,存储在本地内存缓存(ServiceInfo对象)中,作为服务调用的 “基准列表”。
  • 缓存内容:服务名、实例列表(IP、端口、健康状态、权重等)、最后更新时间。

2. 服务端推送:实例变化实时通知(核心)

Nacos 采用 **“推播结合”** 的模式,当服务实例状态变化(如下线)时,服务器会主动通知客户端,触发客户端缓存更新:
  • 机制实现:客户端初始化时,会通过NamingService.subscribe()方法注册服务监听器(EventListener),并与 Nacos 服务器建立长连接(基于 HTTP 长轮询或 UDP);当服务实例状态变化(如下线)时,Nacos 服务器会通过长连接向所有订阅该服务的客户端推送 “实例变更事件”(包含变更的实例 ID、服务名、变更类型);客户端接收到推送后,立即触发监听器回调,增量更新本地缓存(移除下线实例)。
  • 优势:实时性高(毫秒级),避免客户端频繁轮询导致的资源浪费。

3. 定时拉取:兜底机制,确保缓存一致性

为防止 “推送丢失”(如网络波动导致推送失败),客户端会定时全量拉取服务实例列表,作为缓存更新的兜底:
  • 拉取频率:默认每 60 秒(可通过nacos.client.refresh.interval配置);
  • 流程:客户端向 Nacos 服务器发送全量查询请求,对比本地缓存的 “最后更新时间” 与服务器的最新时间;若服务器数据更新,则拉取最新实例列表,全量覆盖本地缓存。

4. 调用时校验:最终保障

即使客户端缓存未及时更新(如推送延迟、拉取周期未到),调用者在实际发起服务调用时,还会通过以下方式校验实例可用性:
  • 负载均衡层过滤:客户端集成的负载均衡组件(如 Ribbon、Spring Cloud LoadBalancer)会从本地缓存中筛选 “健康实例”(过滤已标记为下线的实例);
  • 失败重试与快速失败:若调用某个实例时发生 “连接超时、拒绝连接” 等错误,客户端会将该实例临时标记为 “不可用”(如通过熔断器模式),并触发缓存重新拉取,避免再次调用。

四、总结:客户端感知流程

  1. 服务下线触发:服务主动注销或异常下线,Nacos 服务器更新实例状态;
  2. 服务器通知:Nacos 通过长连接向客户端推送 “实例下线事件”;
  3. 客户端缓存更新:客户端监听器接收事件,增量更新本地缓存,移除下线实例;
  4. 兜底校验:定时全量拉取确保缓存一致,调用时负载均衡过滤进一步保障。
通过这套机制,Nacos 客户端能在秒级内感知服务下线,确保调用者不再向已下线的服务实例发起请求,保障服务调用的可用性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/939361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年防水织带/鞋垫/编织包/针织包/飞织包包/松紧带/鞋带/织带/飞织鞋面厂家推荐排行榜,品质与创新的完美结合!

2025年防水织带/鞋垫/编织包/针织包/飞织包包/松紧带/鞋带/织带/飞织鞋面厂家推荐排行榜,品质与创新的完美结合!随着技术的不断进步和消费者需求的多样化,防水织带、鞋垫、编织包/针织包/飞织包包、松紧带、鞋带、织…

2025年压铸机械手厂家推荐排行榜,铝镁合金压铸周边自动化,压铸岛专业解决方案!

2025年压铸机械手厂家推荐排行榜,铝镁合金压铸周边自动化,压铸岛专业解决方案!随着制造业的不断发展和技术进步,压铸、压铸机械手、铝镁合金压铸周边自动化以及压铸岛等设备的需求日益增长。为了帮助筛选优质的压铸…

在MySQL中 redolog undolog binlog 写入的场景,顺序

🧩 一、三个日志的基本概念日志类型作用层面主要功能存放位置Redo Log InnoDB 引擎层 记录“数据页的物理修改” InnoDB 特有(ib_logfile)Undo Log InnoDB 引擎层 用于事务回滚 & MVCC InnoDB 表空间中Binlog …

2025年证卡打印机厂家权威推荐榜:含证件/PVC卡/IC卡/ID卡/智能卡,宝瑞迪/BOOD品牌优选!

2025年证卡打印机厂家权威推荐榜:含证件/PVC卡/IC卡/ID卡/智能卡,宝瑞迪/BOOD品牌优选!随着科技的不断进步和信息化管理的需求日益增长,证卡打印机在各行各业中的应用越来越广泛。无论是企业、学校、政府机关还是医…

2025 年压滤机厂家最新推荐榜:隔膜 / 污泥 / 真空 / 板框 / 带式压滤机优质企业精选指南

随着环保政策趋严与工业智能化升级,固液分离领域对压滤机的效率、适配性与智能化需求大幅提升。隔膜、污泥、真空等细分类型设备的性能差异显著,化工、矿山、市政等行业的需求更是千差万别。当前市场中,既有深耕多年…

灵芯派(基于Debian系统)

在灵芯派(基于Debian系统)上查看与宇树GO2机器狗连接的网口名称及状态,可以按照以下流程操作。使用 ethtool 命令是判断网口物理连接状态最直接有效的方法。 flowchart TDA[开始:查看网口连接状态] --> B[步骤一…

2025年大连网络营销推广/媒体投放/全案推广/新媒体营销/全媒体推广/代运营公司权威推荐榜

2025年大连网络营销推广/媒体投放/全案推广/新媒体营销/全媒体推广/代运营公司权威推荐榜随着互联网技术的飞速发展,网络营销已经成为企业不可或缺的一部分。在大连,众多企业在寻求网络营销推广、媒体投放、全案推广…

2025年手持光谱仪/光谱分析仪/便携式光谱仪厂家推荐榜单,矿石/元素/合金/金属/贵金属分析仪器首选!

2025年手持光谱仪/光谱分析仪/便携式光谱仪厂家推荐榜单,矿石/元素/合金/金属/贵金属分析仪器首选!随着科技的不断进步和工业需求的日益增长,手持光谱仪、光谱分析仪及便携式光谱仪在矿石/元素分析、合金/金属/不锈…

低空经济新纪元:AI驱动的智能无人机技巧与应用

低空经济新纪元:AI驱动的智能无人机技巧与应用2025-10-18 08:31 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display:…

详细介绍:增强版 bash “zsh“

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年法兰保护罩/阀门保温罩/法兰罩/法兰防溅罩/法兰保护套厂家推荐排行榜,专业防护与优质服务首选!

2025年法兰保护罩/阀门保温罩/法兰罩/法兰防溅罩/法兰保护套厂家推荐排行榜,专业防护与优质服务首选!随着工业技术的不断进步,法兰保护罩、阀门保温罩、法兰罩、法兰防溅罩和法兰保护套等产品在工业领域中的应用越来…

Aniyomi:功能强大的动漫影视播放阅读器

Aniyomi是一款基于Mihon开发的Android应用,提供完整的动漫、卡通、剧集播放和阅读功能,支持本地内容管理、多种观看模式和追番跟踪服务,让您轻松发现和享受喜爱的影视内容。Aniyomi 全功能播放器和阅读器,基于Miho…

2025年无心/外圆磨床,滚丝机,外圆抛光机,送料机,送料架,自动化,机械手厂家推荐排行榜,专业品质与高效性能之选!

2025年无心/外圆磨床、滚丝机、外圆抛光机、送料机、送料架、自动化、机械手厂家推荐排行榜,专业品质与高效性能之选!随着工业4.0的推进和智能制造的快速发展,无心/外圆磨床、滚丝机、外圆抛光机、送料机、送料架、…

2025年陶瓷过滤机厂家推荐排行榜,陶瓷真空/盘式/矿用/全自动/带式陶瓷过滤机,固液分离设备公司推荐!

2025年陶瓷过滤机厂家推荐排行榜:陶瓷真空/盘式/矿用/全自动/带式陶瓷过滤机,固液分离设备公司推荐!随着工业技术的不断进步和环保要求的日益严格,陶瓷过滤机在矿业、化工、制药等多个领域中的应用越来越广泛。陶瓷…

ICASSP 2022语音识别技术突破与创新

本文介绍了某中心在ICASSP 2022会议上发表的21篇语音识别相关论文,涵盖多模态训练、信号到解释转换、BERT重评分等前沿技术,展示了深度学习在自动语音识别领域的最新进展与应用前景。ICASSP 2022语音识别研究进展 本…

140亿元!曝芯片巨头拟出售通信类业务

微信视频号:sph0RgSyDYV47z6 快手号:4874645212 抖音号:dy0so323fq2w 小红书号:95619019828 B站1:UID:3546863642871878 B站2:UID: 3546955410049087 路透社10月14日引述知情人士报道,日本半导体制造商瑞萨电子…

2025多校冲刺 CSP 模拟赛 6

2025多校冲刺CSP模拟赛6以下是博客签名,正文无关 本文来自博客园,作者:Wy_x,转载请在文首注明原文链接:https://www.cnblogs.com/Wy-x/p/19149141 版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际…

Cisco ASR 9000 Router IOS XR Release 7.11.2 MD - 思科 ASR 9000 路由器系统软件

Cisco ASR 9000 Router IOS XR Release 7.11.2 MD - 思科 ASR 9000 路由器系统软件Cisco ASR 9000 Router IOS XR Release 7.11.2 MD - 思科 ASR 9000 路由器系统软件 Cisco ASR 9000 Series Aggregation Services Rou…

2025年瑕疵检测设备厂家推荐排行榜,表面瑕疵检测,薄膜瑕疵检测,铝箔瑕疵在线检测,外观瑕疵检测机公司精选!

2025年瑕疵检测设备厂家推荐排行榜,表面瑕疵检测,薄膜瑕疵检测,铝箔瑕疵在线检测,外观瑕疵检测机公司精选!随着工业自动化和智能化的快速发展,表面瑕疵检测、薄膜瑕疵检测、铝箔瑕疵在线检测等技术在制造业中的应…

10.16 闲话-k 短路

发晚了qwq10.16 闲话-k 短路 Part.1 左偏树 左偏树是一个堆,支持 \(O(\log n)\) 合并。 假设 \(dist_i\) 表示离 \(i\) 最近的儿子数量不为 \(2\) 的儿子的距离 + 1,孤立点设为 0。 容易发现 \(dist_i \le \log n\) …