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

服务注册与发现怎样工作?

先说出你的答案

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

查看完整题解

参考回答

直接回答

服务实例通过选定注册机制登记位置和状态,调用方查询或缓存实例列表,再配合负载分配发起请求。Boot可运行服务,具体发现由匹配的Cloud实现或平台提供。注册成功不代表实例已经业务就绪,发现到地址也不保证下一次调用一定成功。

讲清原理

实例启动、心跳、摘除与调用方缓存都可能存在延迟,因此还需超时、重试与故障转移。平台DNS和注册中心是不同方案,不能因为所有服务用了Boot就假定必须部署同一种中心。

注册信息中的服务名、实例标识和地址应明确,优雅关闭要与停止接流、在途请求和摘除顺序配合。发现机制本身也需访问控制和故障设计,不应允许任意未知实例加入关键服务。

注册、实例列表与实际调用是不同链路
注册、实例列表与实际调用是不同链路

例子与易错点

验证实例变更与过期缓存,不只测首次注册。不要把不健康实例从列表消失的时间当作零,也不要用无限重试掩盖发现延迟。

相关题:第 22 题、第 39 题、第 41 题、第 50 题。

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

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