微服務理論與實踐 六 服務註冊與發現

2021-07-29 10:09:56 字數 2231 閱讀 5347

l  服務的客戶端(包括api閘道器或者其他服務)如何獲取服務端例項的位置

l  每個服務端例項都會在特定的位置(主機及埠)通過http/rest或者thrift等方式發布乙個遠端api

l  服務端例項的具體數量和位置會發生動態變化

l  虛擬機器與容器通常會被分配動態ip位址

向某一服務傳送請求時,客戶端會通過查詢servcie registry,即服務登錄檔來回去該服務的具體位置/該登錄檔包含全部服務的位置。

(1)優點 

l  相比服務端發現,客戶端服務發現的活動部件與網路中轉數量更少。

(2)缺點

l  需要為應用程式中使用的每種語言建立客戶端發現邏輯

向某一服務傳送請求時,客戶端會通知在已知位置的路由器(或者負載均衡器)傳送請求。路由器會訪問服務登錄檔,並向可用的服務例項**該請求。服務登錄檔也可能被內置於路由器之中。

(1)優點

l  相較客戶端發現,其客戶端**無需實現服務發現功能,只需要向路由機制傳送請求即可。

(2)缺點

l  除非成為雲環境的一部分,否則該路由機制必須作為另乙個系統元件進行安裝與配置。為實現可用性和一定的接入能力,還需要為其配置一定數量的副本。

l  相較於客戶端發現,服務端發現需要更多的網路跳轉

3.服務登錄檔

3.1 背景

l  服務的客戶端需要使用客戶端發現機制或者服務端發現機制,獲取需要傳送請求的服務例項的位置

l  每個服務例項都會在特定位置(主機與埠)通過http/rest或者thrift等方式發布乙個遠端api。

l  服務實力的數量和位置會動態的發生變化。虛擬機器與容器通常會被分配乙個動態的ip位址。

3.2 方案

建立一套服務登錄檔。即乙個包括服務、服務的例項和起位置的資料庫。各服務示例需要在啟動時註冊至服務登錄檔,並在關閉的時候進行登出。該服務的客戶端或者路由器通過查詢此服務登錄檔獲取可用的服務例項

3.3 服務登錄檔模式的優缺點

(1)優點

l  服務的客戶端及路由器可以獲取可用的服務例項的位置

(2)缺點

l  除非服務登錄檔被內置於基礎設施,否則其必須做為另外的基礎設施元件進行安裝,配置及管理。

l  需要解決各服務示例如何註冊至登錄檔,如何從登錄檔中登出

l  各服務例項必須在啟動時註冊到服務登錄檔,並在關閉時從服務登錄檔中登出

l  崩潰的服務例項必須從服務登錄檔中登出

l  在執行但無力處理請求的服務例項必須從服務登錄檔中登出

一項服務例項必須可以自動註冊到服務登錄檔中。在啟動時,該服務例項將自身(主機與

ip位址)註冊至服務登錄檔,使自身可被發現。客戶端必須定期更新其註冊資訊,確保登錄檔獲悉其仍處於執行狀態。在關閉時,服務例項從服務登錄檔中自動登出。這一流程通常由微服務底盤框架實現。

3.4.2.2 自註冊的優缺點

(1)優點

l  服務例項了解自身的狀態,因而能夠實現比啟動/停止更為負責的狀態模型。

(2)缺點

l  將服務與登錄檔耦合起來

l  需要為編寫服務時使用的每種語言分別實現服務註冊邏輯。

l  正在執行但無法處理請求的服務示例往往無法自動在服務登錄檔中進行自我登出

由第三方負責將服務和服務例項在服務登錄檔中的註冊,並在服務啟動的時候將服務例項註冊到服務登錄檔。而在服務例項關閉的時候在服務登錄檔中登出

3.4.2.4 第三方註冊的優缺點

(1)優點

l  與自註冊相比,服務端無需實現自動註冊邏輯,複雜度較低

l  註冊工具可以對服務進行健康檢查,並根據健康檢查註冊或者登出該例項

(2)缺點

l  第三方註冊只能了解服務例項的一些表層狀態,例如其是否正在執行,並不能判斷正在執行的服務是否能夠處理請求

l  除非該註冊工具屬於基礎設施的一部分,否則我們需要對其進行安裝、配置及維護。由於其屬於關鍵部件,需要保證其高可用。

微服務理論與實踐 五 微服務之間的互動

microservice架構模式中的 開 是各個服務的內部實現,而其中的 閉 則是各個服務之間相互溝通的方式 微服務必須使用程序間通訊機制來互動。微服務架構有兩類ipc機制可選,非同步訊息機制和同步請求 響應機制。當設計服務的通訊模式時,需要考慮幾個問題 服務如何互動,每個服務如何標識api,如何公...

微服務2,3,4 註冊與發現

格物致知,格註冊與發現。服務發現承載服務提供與消費者之間的橋梁,各個微服務與服務發現元件使用心跳機制進行通訊。服務發現元件如果長時間無法與某微服務例項通訊,就會登出該例項。spring cloud提供了多種服務發現元件的支援,如eureka,consul 和 zookeeper等 單節點eureka...

聊聊微服務的服務註冊與發現

摘要 乙個好的服務註冊發現中介軟體,應該是能完整地滿足服務開發和治理的基礎功能,然後才是效能和高可用。如果沒有想清楚前面的功能,再高的可用性和效能都是浮雲。最後,安全也同樣重要。下面將從 服務註冊 服務發現 容災和高可用三個大方面來回答這些問題的主流做法。聊起微服務的服務註冊與發現,很多人立馬就會脫...