[翻譯]微服務設計模式 - 8. 服務發現 - 第三方註冊

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

背景

假設你採用了客戶端服務發現或者服務端服務發現,服務啓動時需要向註冊中心註冊實例,在關閉時向註冊中心註銷,以便其他服務感知。

問題

服務實例如何向註冊中心註冊或註銷?

考慮因素

  • 服務在啓動時必須向註冊中心註冊實例,並且在關閉時在註冊中心註銷實例
  • 必須從註冊中心註銷崩潰的服務實例
  • 正在運行但是無法正常提供服務的實例,也需要在註冊中心註銷

解決方案

引入一個第三方註冊代理,負責服務實例在服務註冊中心註冊和註銷。當服務實例啓動時,註冊代理將實例註冊到註冊中心。當服務實例關閉時,註冊代理負責註銷實例。

舉例

第三方註冊模式的例子包括:

結果分析

第三方註冊模式的好處包括:

  • 服務的代碼比使用自注冊模式更加簡單,因爲它不負責註冊
  • 註冊代理可以對服務實例執行健康檢查,並根據健康狀態註冊/註銷實例。

也有一些缺點:

  • 註冊代理只對服務實例的狀態有模糊的理解,例如只有 UP 和 DOWN,因此可能不知道它是否能夠正常處理請求。上面提到的 Netflix Prana 等一些 註冊代理 利用健康檢查,以確定服務實例的可用性。
  • 需要額外維護一個 註冊代理 服務,而且需要高可用。

相關模式

  • 註冊中心 - 服務發現的核心
  • 客戶端服務發現服務端服務發現
  • 微服務基礎框架 - 一般微服務基礎框架都有自注冊的功能實現
  • 自注冊 - 另一種可替代的設計模式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章