SpringCloud--服務注冊與服務發現-原理


抄的留給自己參考。

 

服務提供者、服務消費者、服務發現組件這三者之間的關系大致如下:

  • 各個微服務在啟動時,將自己的網絡地址等信息注冊到服務發現組件中,服務發現組件會存儲這些信息;

  • 服務消費者可從服務發現組件查詢服務提供者的網絡地址,並使用該地址調用服務提供者的接口;

  • 各個微服務與服務發現組件使用一定機制(例如心跳)通信。服務發現組件如長時間無法與某微服務實例通信,就會自動注銷(即:刪除)該實例;

  • 當微服務網絡地址發生變更(例如實例增減或者IP端口發生變化等)時,會重新注冊到服務發現組件;

  • 客戶端緩存:各個微服務將需要調用服務的地址緩存在本地,並使用一定機制更新(例如定時任務更新、事件推送更新等)。這樣既能降低服務發現組件的壓力,同時,即使服務發現組件出問題,也不會影響到服務之間的調用。

綜上,服務發現組件應具備以下功能。

  • 服務注冊表:服務注冊表是服務發現組件的核心,它用來記錄各個微服務的信息,例如微服務的名稱、IP、端口等。服務注冊表提供查詢API和管理API,查詢API用於查詢可用的微服務實例,管理API用於服務的注冊和注銷;

  • 服務注冊與服務發現:服務注冊是指微服務在啟動時,將自己的信息注冊到服務發現組件上的過程。服務發現是指查詢可用微服務列表及其網絡地址的機制;

  • 服務檢查:服務發現組件使用一定機制定時檢測已注冊的服務,如發現某實例長時間無法訪問,就會從服務注冊表中移除該實例。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM