Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

怎么让 Consul 里的单个服务实例优雅下线?

查看完整题解

参考回答

直接回答

先把实例移出新请求的候选,再等已有请求处理完,最后注销它的服务 ID 并关闭进程。实例能否及时停止接到新流量,还取决于调用方缓存、探测周期和代理的连接策略。

讲清原理

向管理实例的 agent 发 PUT /v1/agent/service/deregister/<id>,它会同步到目录。也可以用就绪检查先报告不可用。自动注销是异常退出的兜底,需要先配置连续 critical 时长。

健康状态参与服务发现的筛选
健康状态参与服务发现的筛选

例子与易错点

库存服务有两台时,只操作需要维护的实例 ID。把检查状态改成 critical,等另一台接住新流量,再关闭旧进程。

延伸阅读 怎么优雅关闭整个 Consul 节点? · Consul 怎样检查服务是否健康? · 一项 Consul 注册从进程一直到消费者经历什么?

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。