微服務 服務發現模式

2022-04-03 04:23:00 字數 1159 閱讀 8601

服務發現有三個角色,服務提供者、服務消費者和服務中介。

服務中介:聯絡服務提供者和服務消費者的橋梁。

服務提供者:將自己提供的服務位址註冊到服務中介。

服務消費者:從服務中介那裡查詢自己想要的服務的位址,然後享受這個服務。

服務中介提供多個服務,每個服務對應多個服務提供者

服務1~4把當前自己的網路位置註冊到服務發現模組,服務發現就以k-v的方式記錄下,k一般是服務名,v就是ip:port。服務發現模組定時的輪詢檢視這些服務能不能訪問的了(這就是健康檢查)。客戶端在呼叫服務1~4的時候,就訪問服務發現模組得到服務提供者的網路位置,然後再呼叫它們的服務。

目前,服務發現主要存在有兩種模式,客戶端模式與服務端模式,兩者的本質區別在於,客戶端是否儲存服務列表資訊。下面用兩個圖來表示客戶端模式與服務端模式。

客戶端模式

在客戶端模式下,如果要進行微服務呼叫,首先要週期性到服務註冊中心獲取服務列表(客戶端維護這個這個服務列表),然後再根據呼叫端本地的負載均衡策略,進行服務呼叫。

服務端模式

在服務端模式下,呼叫方直接向服務註冊中心進行請求,服務註冊中心再通過自身負載均衡策略,對微服務進行呼叫。這個模式下,呼叫方不需要在自身節點維護服務發現邏輯以及服務註冊資訊,這個模式相對來說比較類似dns模式。

總結服務端模式和客戶端模式的區分

客戶端模式:所有客戶端需要維護服務列表資訊,負載均衡策略而服務端模式下則無需這些額外的實現。

服務端模式:客戶端每次請求都必須訪問服務中介,獲得服務列表,負載均衡策略等是服務端實現。

服務端模式下,更容易實現多語言的接入,更具有通用性,但是在客戶端模式下,則具有了更快的響應時間以及更強的容災能力。

refer:

微服務的服務發現機制

當我們需要遠端訪問rest api或者thrift api時,我們必須得知道服務的網路位址 ip address和port 傳統的應用程式都是執行在固定的物理機器上,ip address和埠號都是相對固定的。可以通過配置檔案方式來實現不定期更新的ip address和埠號。在基於雲的微服務應用中,服...

微服務 四 服務發現 Nacos

在講服務發現之前需要先普及兩個名詞的概念 有部分人更習慣將服務提供者稱為服務端,服務消費者為客戶端。官網文件 什麼是nacos?官網文件已經解釋的很清楚了,簡單來講,nacos是乙個服務發現元件,也是配置伺服器,主要是幫我們解決了兩個問題 服務發現 解決service a怎麼發現service b的...

微服務 Consul(服務註冊發現)

類似dns伺服器會根據我們的網域名稱解析出乙個ip位址,然後去請求這個ip來獲取我們想要的資料,它可以讓我們只需說我想要什麼服務即可,而不必去關心服務提供者的具體網路位置 ip 位址 埠等 目前,服務發現主要分為兩種模式,客戶端模式與服務端模式 在客戶端模式下,首先要到服務註冊中心獲取服務列表,然後...