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

Consul 怎样实现服务注册?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

常见做法是把实例的 ID、服务名、地址、端口和检查规则交给本机 agent。Agent 管理本地服务状态,再把注册和健康信息同步到 server 的 Catalog。

讲清原理

服务名让调用者找到同类实例,实例 ID 让 agent 区分同一服务的多个进程。服务端 Leader 负责处理目录写入,其他 server 按 Raft 复制。本地登记和全局目录可能短时间看到不同结果。

服务登记到目录,调用方查址后直连实例
服务登记到目录,调用方查址后直连实例

例子与易错点

同一台机器上启动两个库存进程,名称都可叫 inventory,ID 和端口应能区分。若注册后查不到地址,分别查 agent 本地记录与健康发现结果。

延伸阅读 如何使用配置文件登记 Consul 服务? · 如何用 HTTP API 向 Consul 注册服务? · 一项 Consul 注册从进程一直到消费者经历什么?

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

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