[翻译]微服务设计模式 - 8. 服务发现 - 第三方注册

原文地址:https://microservices.io/patterns/self-registration.html

背景

假设你采用了客户端服务发现或者服务端服务发现,服务启动时需要向注册中心注册实例,在关闭时向注册中心注销,以便其他服务感知。

问题

服务实例如何向注册中心注册或注销?

考虑因素

  • 服务在启动时必须向注册中心注册实例,并且在关闭时在注册中心注销实例
  • 必须从注册中心注销崩溃的服务实例
  • 正在运行但是无法正常提供服务的实例,也需要在注册中心注销

解决方案

引入一个第三方注册代理,负责服务实例在服务注册中心注册和注销。当服务实例启动时,注册代理将实例注册到注册中心。当服务实例关闭时,注册代理负责注销实例。

举例

第三方注册模式的例子包括:

结果分析

第三方注册模式的好处包括:

  • 服务的代码比使用自注册模式更加简单,因为它不负责注册
  • 注册代理可以对服务实例执行健康检查,并根据健康状态注册/注销实例。

也有一些缺点:

  • 注册代理只对服务实例的状态有模糊的理解,例如只有 UP 和 DOWN,因此可能不知道它是否能够正常处理请求。上面提到的 Netflix Prana 等一些 注册代理 利用健康检查,以确定服务实例的可用性。
  • 需要额外维护一个 注册代理 服务,而且需要高可用。

相关模式

  • 注册中心 - 服务发现的核心
  • 客户端服务发现服务端服务发现
  • 微服务基础框架 - 一般微服务基础框架都有自注册的功能实现
  • 自注册 - 另一种可替代的设计模式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章