Nacos服務註冊與發現的原理
一、Nacos介紹
Nacos是 Dynamic Naming and Configuration Service的首字母簡稱,一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平臺。
Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務後設資料及流量管理。
Nacos 是構建以“服務”為中心的現代應用架構 (例如微服務正規化、雲原生正規化) 的服務基礎設施。
二、Nacos服務註冊與發現
1.服務註冊
服務例項啟動:當服務例項啟動時,它會透過Nacos客戶端與Nacos服務端建立連線。
傳送註冊請求:服務例項透過HTTP或DNS協議向Nacos服務端傳送註冊請求,請求中包含服務名、IP、埠、健康檢查URL等資訊。
服務端處理:Nacos服務端接收到註冊請求後,將服務例項資訊儲存到記憶體中,同時持久化到資料庫中。
健康檢查:Nacos服務端會定期對已註冊的服務例項進行健康檢查,確保服務例項可用。
2.服務發現
服務消費者:當服務消費者需要呼叫服務提供者時,它會向Nacos服務端傳送服務發現請求。
服務端響應:Nacos服務端接收到服務發現請求後,會返回所有可用的服務例項列表。
負載均衡:服務消費者根據某種負載均衡策略(如隨機、輪詢等)從服務例項列表中選擇一個服務例項進行呼叫。
下面是它的原理圖:
圖中的流程是大家所熟悉的,不同的是在Nacos 中,服務註冊時在服務端本地會透過輪詢註冊中心叢集節點地址進行服務得註冊,在註冊中心上,即Nacos Server上採用了Map儲存例項資訊,當然配置了持久化的服務會被儲存到資料庫中,在服務的呼叫方,為了保證本地服務例項列表的動態感知,Nacos與其他註冊中心不同的是,採用了 Pull/Push同時運作的方式。