圖解 | 注冊發現核心原理提煉
作者: 梁勇
通過對Nacos注冊與發現源碼閱讀,將其核心原理歸納提煉。包含:注冊、發現、節點之間通信、健康檢查類型。
引言
通過對Nacos注冊與發現源碼閱讀,將其核心原理歸納提煉。包含:注冊、發現、節點之間通信、健康檢查類型。
一、服務注冊原理
當客戶端發起注冊時,注冊原理邏輯見下圖,進一步簡化主要有:
- 將新注冊的實例信息推送給訂閱該服務的訂閱者
- 將新注冊的實例信息增量同步給集群中的其他節點
二、服務發現原理
服務發現的邏輯進一步簡化為:
- 定時從注冊中心查詢最新服務實例列表信息
- 定時頻率通常為6秒,發生異常為60秒
三、集群節點通信原理
集群中節點通信原理可以進一步簡化為:
- 每個節點用于全量的注冊快照信息
- 新節點加入集群時會從集群中某節點發起全量同步
- 節點之間每隔5秒校驗緩存的注冊快照信息
- 節點之間每隔2秒進行一輪健康檢查用于關閉/新建/刷新gRPC連接
四、健康檢查類型與場景
健康檢查類型與場景進一步可以簡化為:
- 臨時節點通過gRPC連接保鮮實現,保鮮頻率為5秒
- 臨時節點注冊使用Distro協議,持久節點注冊使用Raft協議
- 持久節點支持客戶端心跳和服務端探活兩種方式
- 持久節點探活支持HTTP、TCP等探活類型
本文轉載自微信公眾號「瓜農老梁」,可以通過以下二維碼關注。轉載本文請聯系瓜農老梁公眾號。
責任編輯:武曉燕
來源:
瓜農老梁