当前位置: 首页 > article >正文

孤舟笔记 互联网常用框架篇三 Dubbo是如何动态感知服务下线的?注册中心和服务端双保险

文章目录先说结论机制一注册中心通知机制二心跳检测机制三连接事件感知机制四定时拉取四种机制的协作回答技巧与点评加分回答面试官点评个人网站微服务环境下服务实例随时可能上下线——重启、扩容、宕机……调用方怎么及时感知到这些变化如果还调了一个已经挂掉的服务岂不是白等面试官问这题他想听的是Dubbo 有哪些机制来感知服务下线它们的实时性如何先说结论机制触发方实时性原理注册中心通知注册中心较高Watch/Callback 机制心跳检测提供者中等定时心跳超时剔除连接事件消费者较高TCP 连接断开立即感知定时拉取消费者较低定期全量/增量拉取一句话记住感知服务下线就像知道同事离职——公司群公告注册中心、他本人告别主动下线、打电话不通连接断开、定期查通讯录定时拉取机制一注册中心通知服务提供者下线时主动向注册中心发送注销请求注册中心通知消费者Provider 下线 ↓ 向注册中心发送 unregister ↓ 注册中心更新服务列表 ↓ 通过 Watch/Callback 通知 Consumer ↓ Consumer 更新本地路由表以 ZooKeeper 为例// Provider 注册时创建临时节点zkClient.createEphemeral(/dubbo/com.example.UserService/providers/192.168.1.1:20880);// Provider 下线主动或宕机zkClient.delete(/dubbo/com.example.UserService/providers/192.168.1.1:20880);// Consumer 监听节点变化zkClient.subscribeChildChanges(path,(parentPath,currentChildren)-{updateLocalRoute(currentChildren);// 感知到变化更新路由});ZooKeeper 的临时节点特性Session 过期后自动删除。即使 Provider 宕机来不及主动注销ZooKeeper 也会在 Session 超时后默认 40 秒自动删除节点。Nacos 的方式类似通过 UDP 推送或长轮询通知消费者。机制二心跳检测如果注册中心通知不及时网络分区等Dubbo 还有心跳检测机制dubbo:provider:heartbeat:60000# 心跳间隔 60 秒consumer:heartbeat:60000Provider 和 Consumer 之间定时发送心跳包Consumer ──心跳──→ Provider正常 Consumer ──心跳──→ Provider无响应 ↓ 连续 3 次心跳失败 ↓ 标记 Provider 为不可用 ↓ 从路由表中移除心跳检测是注册中心通知的补充——注册中心告诉你他离职了是最佳情况但如果通知丢了心跳检测可以兜底发现打电话没人接。机制三连接事件感知Dubbo 基于 Netty 长连接TCP 连接断开时会触发事件// Dubbo 的 Netty ChannelHandlerpublicclassNettyClientHandlerextendsChannelDuplexHandler{OverridepublicvoidchannelInactive(ChannelHandlerContextctx){// TCP 连接断开立即感知removeProviderFromRoute(ctx.channel());}}如果 Provider 进程崩溃kill -9、OOMTCP 连接会立即断开Consumer 的 Netty 会触发 channelInactive 事件——实时性最高几乎是瞬间感知。但如果是 Provider 假死进程在但无法响应TCP 连接不会断连接事件感知不到需要心跳检测兜底。机制四定时拉取Consumer 定期从注册中心全量拉取服务列表dubbo:consumer:check:falseregistry:file:~/.dubbo/dubbo-registry.cache# 本地缓存这是最保守的策略——即使其他通知机制都失败了定时拉取也能保证最终一致性。但延迟最大通常 30-60 秒。四种机制的协作Provider 下线 │ ├── 主动注销 → 注册中心通知 Consumer秒级 │ ├── 宕机 → ZK 临时节点删除 → 通知 Consumer40秒内 │ ├── 进程崩溃 → TCP 断开 → Consumer 立即感知毫秒级 │ ├── 假死 → 心跳超时 → Consumer 标记不可用3分钟内 │ └── 以上都失效 → 定时拉取兜底1分钟内Dubbo 动态感知服务下线全景 四种机制 ├── 注册中心通知 —— Watch/Callback秒级感知 ├── 心跳检测 —— 定时心跳超时剔除分钟级 ├── 连接事件 —— TCP 断开毫秒级感知 └── 定时拉取 —— 全量/增量兜底机制 感知优先级 ├── TCP 断开最快毫秒级 ├── 注册中心通知正常秒级 ├── 心跳超时兜底分钟级 └── 定时拉取最终分钟级 注册中心差异 ├── ZooKeeper —— 临时节点 Watch ├── Nacos —— UDP 推送 长轮询 └── Consul —— Watch HTTP 长轮询 口诀注册中心来通知Watch回调秒级知 TCP断开立即觉心跳超时分钟级 ZK临时节点自动删Nacos推送更及时 四层机制层层保下线感知不用愁回答技巧与点评标准回答Dubbo 通过四种机制动态感知服务下线1注册中心通知——Provider 注销后注册中心通过 Watch/Callback 通知 Consumer2心跳检测——Consumer 定期向 Provider 发送心跳连续失败则标记不可用3连接事件——TCP 连接断开时 Netty 触发 channelInactive 事件毫秒级感知4定时拉取——Consumer 定期从注册中心拉取服务列表兜底。ZooKeeper 临时节点在 Session 过期后自动删除即使宕机也能自动注销。加分回答优雅停机Dubbo 支持优雅停机Spring Boot 的 PreDestroy 钩子停机前先从注册中心注销再等待正在处理的请求完成避免消费者调到正在关闭的实例Nacos 的优势Nacos 使用 UDP 推送 长轮询双保险推送失败后消费者会通过长轮询补偿比 ZooKeeper 的 Watch 一次性触发更可靠本地缓存Consumer 会在本地文件缓存注册表dubbo-registry.cache注册中心不可用时使用缓存数据保证基本可用面试官点评这道题考的是你对分布式服务发现可靠性的理解。能说出注册中心通知和心跳检测算及格高分的关键在于讲清楚四种机制的优先级和适用场景特别是 TCP 连接断开能毫秒级感知这个细节。如果能提到优雅停机和本地缓存说明你有生产环境的实战经验。原文阅读内容有帮助点赞、收藏、关注三连评论区等你

相关文章:

孤舟笔记 互联网常用框架篇三 Dubbo是如何动态感知服务下线的?注册中心和服务端双保险

文章目录先说结论机制一:注册中心通知机制二:心跳检测机制三:连接事件感知机制四:定时拉取四种机制的协作回答技巧与点评加分回答面试官点评个人网站微服务环境下,服务实例随时可能上下线——重启、扩容、宕机……调用…...

孤舟笔记 互联网常用框架篇二 Dubbo服务请求失败怎么处理?集群容错策略你用过几种

文章目录先说结论Failover:换家店试试Failfast:不行就算了Failsafe:忘了这事Failback:回头再说Forking:同时点几家Broadcast:通知所有人怎么选择回答技巧与点评加分回答面试官点评个人网站分布式系统中&…...

Windows文件夹共享

目标:同一局域网实现在一台计算机上共享文件夹,在另一台电脑访问一、电脑A 1.点击要共享的文件夹 -> 属性 -> 共享2.添加Everyone用户组3.控制面板中网络共享关闭密码保存,在访问时不用输入账号密码。二、电脑B 1.在文件资源管理器路径…...

碧蓝航线自动化脚本终极指南:3小时学会全自动游戏管理

碧蓝航线自动化脚本终极指南:3小时学会全自动游戏管理 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 还在为碧蓝…...

关于psthon问题

我想问问各位 我python可以查到 但是我的bit文件查不到python怎么回事...

可解释AI新突破:基于局部帕累托最优的模型解释框架

1. 项目概述:当AI模型成为“黑箱”,我们如何撬开它?在机器学习项目里摸爬滚打十几年,我见过太多这样的场景:团队花大力气训练出一个准确率高达95%的复杂模型(比如深度神经网络),业务…...

告别数据饥荒:用PyTorch手把手实现原型网络(Prototypical Networks)做电影评论情感分类

告别数据饥荒:用PyTorch手把手实现原型网络做电影评论情感分类 在自然语言处理领域,情感分析一直是热门研究方向,但现实中的开发者常面临一个尴尬困境:标注数据太少。传统深度学习方法动辄需要成千上万的标注样本,而实…...

【深度解析】AI Coding 模型竞速:从 Claude Mythos 安全编码到 GPT-5.6 传闻,如何落地代码审查智能体

摘要 AI 编码模型正在从“代码补全”进入“复杂代码库理解、漏洞发现与自动修复”阶段。本文结合 Claude Mythos、Claude Opus 4.8 与 GPT-5.6 相关信息,解析新一代 Coding Agent 的技术趋势,并给出基于大模型 API 的代码安全审查实战方案。背景介绍&…...

别被忽悠了!2026亲测靠谱的AI论文网站|避坑精选版

2026 年学术写作工具已高度分化,千笔AI与ThouPen为全流程首选,豆包、DeepSeek 为专项强手;避坑关键:拒绝假文献、严控 AIGC 率、优先国内适配、免费试用先行。 一、TOP3 全流程首选(亲测不踩雷) 1. 千笔AI&…...

HDI 高密度互连板阶数的深度理解

一、概述高密度互连板(High Density Interconnector, HDI)是通过激光微孔技术和逐层积层工艺实现高密度布线的印制电路板。其阶数划分是行业内统一的技术标准,核心依据为独立积层压合次数与配套激光盲孔制程次数,而非单面层数或钻…...

打不开JupyterLab

因为安装某些依赖导致JupyterLab的依赖被动升级或降级,从而影响了JupyterLab的运行,此时可以SSH登录到实例,然后输入jupyter-lab命令进行确认,如果执行命令报错则说明是此问题,那么可以通过pip install jupyterlab再次…...

2026年一键生成论文工具对比实测:5款神器从选题到格式全流程护航

写论文的焦虑,是每个科研人和学生都心照不宣的“隐形压力”。选题无从下手,文献检索耗时费力,逻辑框架反复推翻,格式排版让人抓狂,查重降重更是像在和系统玩“猫鼠游戏”。2026年的AI工具早已不是过去那种“打字机”&a…...

AI学习 - 大模型基础入门

AI学习 - 大模型基础入门 从零开始:Ollama 安装 → 本地模型运行 → Python 代码接入 → 理解核心概念 摘要 本文记录了在 Windows 上使用 Ollama 部署本地大模型、并通过 Python 代码接入调用的完整过程。内容涵盖:Ollama 安装与模型拉取、大模型基础概…...

科华UPS电源全品类汇总:选型与场景适配指南

科华UPS电源作为国内智慧电能领域的主流产品,覆盖家用、办公、机房、工业等全场景,产品系列丰富、规格齐全,但多数用户在选型时,常因分不清系列差异、功率适配、架构类型而踩坑。本文系统汇总科华UPS电源的核心分类、主流系列、核…...

Mysql:事务管理(中)

在前面的章节中,我们提到了 MVCC(多版本并发控制),它巧妙地通过“版本快照”解决了“读-写”冲突,实现了非阻塞读。但如果两个事务同时执行 UPDATE 操作修改同一行数据,即 写-写(Write-Write&am…...

MongoDB Limit 与 Skip 方法详解

MongoDB Limit 与 Skip 方法详解 引言 MongoDB 是一个高性能、可伸缩的文档存储系统,它提供了强大的数据存储和查询功能。在处理大量数据时,Limit 与 Skip 方法是 MongoDB 中常用的查询优化工具。本文将详细介绍 MongoDB 中的 Limit 与 Skip 方法,包括其基本用法、性能影响…...

XML 服务器

XML 服务器 引言 XML(可扩展标记语言)服务器在现代互联网技术中扮演着至关重要的角色。它为数据的传输和处理提供了灵活且高效的方式。本文将深入探讨XML服务器的概念、工作原理、应用场景及其在软件开发中的重要性。 什么是XML服务器? XML服务器是一种用于存储、处理和…...

人类防伪指南:为什么你越写错字,HR越信你是真人?

前言各位码农、算法侠、CtrlC/V十级学者请注意:你有没有过这样的经历?辛辛苦苦肝了一晚上文档,逻辑严密、语法丝滑、连Markdown都对齐得像军训方阵,结果老板幽幽来一句:“这真是你自己写的?”那一刻&#x…...

skills CANN开源社区贡献技能包开发指南

前言 开源社区的健康运转,不仅依赖核心代码的贡献,还需要降低贡献门槛、提供清晰的指南和自动化工具。skills仓库是CANN开源社区的"贡献技能包",提供了一系列辅助脚本、代码模板、CI检查和文档生成工具,帮助新手快速上…...

AI算力要上天?别笑,太空数据中心真能干翻地球电费!

前言你有没有算过,训练一个大模型,相当于烧掉多少吨煤?如今AI狂飙突进,算力需求指数级增长,可地球上的电——不够用了!更别说建个数据中心还得跟地方政府“斗智斗勇”,抢地皮、配储能、扛审批&a…...

巧用对称性与平均值原理:低成本实现高精度电阻分压器校准

1. 项目概述:用数学思维突破测量设备的精度极限在电子实验室里捣鼓精密电路,尤其是涉及到电压基准、信号调理或者高精度ADC前端时,一个绕不开的坎就是精密分压器。你可能在设计一个需要0.1%甚至更高精度的分压网络,但手头的万用表…...

大佬推荐的网络安全学习路线(从基础到高级,超级详细)

大佬推荐的网络安全学习路线(从基础到高级,超级详细) 说起网络安全,你可能会担心它是一个过时的行业。有人说,网络安全快卷死了,你既要攻又要防,并且随着技术的发展,你还要不断地学…...

广州因特智能:AI视觉软硬结合,打破半导体检测装备“卡脖子”困境

【导语:广州因特智能科技孵化于西安电子科技大学广州研究院,专注用AI视觉技术解决工业场景的“卡脖子”检测难题,为半导体、光通信、新能源三大领域提供高端检测装备。】校地合作孵化,构建完整能力体系广州因特智能科技由西安电子…...

AI圈神秘领袖Ilya一幅画引爆全网,OpenAI三件大事暗示AGI时代将至?

AI圈神秘精神领袖Ilya在Instagram上传一幅画引发疯狂解读,与此同时,OpenAI连续公布数学成果、升级Codex、筹备IPO,释放AGI到来的强烈信号。Ilya画作引猜测Ilya上传的画中,罗丹的「思考者」踩在芯片Die Shot上,右下角签…...

股票买卖最佳时机:LeetCode121题解

题目LeetCode121给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取…...

【紧急预警】Lindy衰减临界点已提前至第8.3个月!2024最新《营销自动化寿命健康度白皮书》限时开放前500份

更多请点击: https://kaifayun.com 第一章:Lindy衰减临界点的理论重构与实证突破 Lindy效应传统上描述“越老越长寿”的非线性生存规律,但其在现代软件系统、开源生态与协议层技术栈中的适用边界正遭遇结构性挑战。本文首次将Lindy模型从静…...

ssm207基于SSM的视频播放系统的设计与实现+vue(文档+源码)_kaic

第五章 系统的实现5.1 用户功能模块的实现5.1.1系统主界面用户进入本系统可查看系统信息,系统主界面展示如图5.1所示。图5.1网站主界面5.1.2视频详情界面用户可选择视频查看视频详情信息,并可进行视频播放操作,视频详情界面展示如图5.2所示。…...

GEO生成引擎优化:当AI成为信息分发的主角,品牌如何抢占对话窗口?

当用户不再"搜索-浏览",而是直接"AI提问-获取答案",传统SEO的逻辑正在被彻底改写。2026年,GEO(Generative Engine Optimization,生成式引擎优化)已经从概念走向规模化落地。本文从技术…...

2026长沙智能家居品牌实测,这些本地老牌值得选

2026年,长沙的智能家居市场已经从“概念热”转向“落地战”。我走访了长沙多个本地服务商,实测了不同品牌在别墅、酒店、大平层等场景的真实表现。今天,结合数据与案例,分享几个值得关注的本地品牌,尤其是深耕8年以上的…...

翻译 GDB 官方文档

翻译 GDB 官方文档项目地址官方文档地址下载源码包编译html运行翻译程序项目地址 https://github.com/shootercheng/gdb-translate.git 项目结构 $ tree -L 1 . ├── cmd ├── go.mod ├── input ├── internal ├── LICENSE ├── output ├── README.md ├─…...