nacos學習筆記之服務發現中心

测试微思录-静水流深發表於2024-07-06

一.什麼是服務發現

在微服務中,服務的消費方需要呼叫服務的生產方,這樣服務的消費方就需要知道服務的消費方的網路地址(ip+埠號)。

二、流程


上圖中服務例項本身並不記錄服務生產方的網路地址,所有服務例項內部都會包含服務發現客戶端(例如spring cloud中的ribbon)。
(1)在每個服務啟動時會向服務發現中心上報自己的網路位置。這樣,在服務發現中心內部會形成一個服務註冊
表,服務登錄檔是服務發現的核心部分,是包含所有服務例項的網路地址的資料庫。
(2)服務發現客戶端會定期從服務發現中心同步服務登錄檔 ,並快取在客戶端。
(3)當需要對某服務進行請求時,服務例項透過該登錄檔,定位目標服務網路地址。若目標服務存在多個網路地
址,則使用負載均衡演算法從多個服務例項中選擇出一個,然後發出請求。

三、相關概念

負載均衡:將使用者請求(流量)透過一定的策略,分攤在多個服務例項上執行,分為服務端負載均衡和客戶端負載均衡。
伺服器端負載均衡:

在負載均衡器中維護一個可用的服務例項清單,當客戶端請求來臨時,負載均衡伺服器按照某種配置好的規則(負
載均衡演算法)從可用服務例項清單中選取其一去處理客戶端的請求。這就是服務端負載均衡。
例如Nginx,透過Nginx進行負載均衡,客戶端傳送請求至Nginx,Nginx透過負載均衡演算法,在多個伺服器
之間選擇一個進行訪問。即在伺服器端再進行負載均衡演算法分配。
客戶端服務負載均衡:

在客戶端負載均衡器(例如ribbon)中維護一個可用的服務例項清單,在客戶端請求發出之前,客戶端負載均衡器(例如ribbon)按照某種配置好的規則(負
載均衡演算法)從可用服務例項清單中選取其一去請求,這就是客戶端負載均衡。

相關文章