← 每日面试题 学习看板

什么是Dubbo的优雅停机,怎么实现的?

面试题/00java/04 框架/04Dubbo/什么是Dubbo的优雅停机,怎么实现的?.md

面试记录 2026-10-11

题目:什么是Dubbo的优雅停机,怎么实现的?

难度:low

标签:spring/dubbo, difficulty/low

评分:⭐⭐⭐☆☆(3/5)

我的回答

它大多是用来做 RPC 调用的,它的优雅停机理论上应该是指在调用时把,在,优雅停机,在停机时把已经在途的请求都处理完成,而不是直接停机。

点评

优点:

不足:

补充:

完整讲解

第一部分:知识重点剖析

核心考点定位:考察微服务框架的优雅停机机制,理解如何避免服务重启导致请求丢失。

知识点拆解:

  1. 优雅停机的定义:服务停机前,先处理完所有在途请求,再关闭服务,避免请求丢失
  2. Dubbo 优雅停机三步:
  1. 实现机制:
  1. 常见场景:

第二部分:考察方向与延伸递进

考察方向:

延伸递进面试题:

  1. Dubbo 优雅停机和 Spring Boot 优雅停机有什么区别?
  1. K8s 中如何实现 Dubbo 服务的优雅停机?
  1. 优雅停机等待超时了怎么办?

第三部分:面试者参考回答(三步法口语化,300-400 字)

【一句话结论】

面试官您好,Dubbo 优雅停机是停机前先摘除服务、处理完在途请求再关闭,避免请求丢失。

【三点展开】

第一,核心目标是避免请求丢失。服务停机前,先处理完所有在途请求,再关闭服务,而不是直接停。

第二,实现三步走。先从注册中心摘除服务(ZK/Nacos 下线,防止新请求进来),然后等待已连接的请求处理完成(设置超时时间,如 30 秒),最后关闭服务。

第三,通过 JVM shutdownhook 实现。捕获 SIGTERM 信号(kill -15)触发停机流程,Dubbo 内置优雅停机扩展点自动执行三步。

【一句边界】

当然,优雅停机只解决"在途请求"问题,如果请求处理超过超时时间(如 30 秒),会强制关闭,需要配合监控告警和合理的超时设置。