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

怎样监控 Consul 中某项服务的变化?

先说出你的答案

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

查看完整题解

参考回答

直接回答

对单个服务使用 service 型 Watch,或持续查询支持阻塞的 Health API。把实例新增、消失、地址变化以及健康状态变化交给业务处理地址更新或连接回收。

讲清原理

应先确定是否只跟踪 passing 实例,再按相同查询参数续用索引。如果只看 Catalog 的服务名称集合,同名服务中的某台机器换地址,可能不会改变这个视图。

带 X-Consul-Index 继续等待视图变化
带 X-Consul-Index 继续等待视图变化

例子与易错点

订单服务关心谁能接库存查询,就跟踪 inventory 的健康实例。收到结果后更新地址列表,已经在执行的调用另按连接或请求的关闭策略处理。

延伸阅读 Consul Watches 监视服务时会发生什么? · 怎样分别跟踪 Consul 的节点和健康状态? · Consul 的 DNS 和 HTTP 发现接口各适合什么?

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

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