引言
通過對Nacos註冊與發現源碼閱讀,將其核心原理歸納提煉。包含:註冊、發現、節點之間通信、健康檢查類型。
當客戶端發起註冊時,註冊原理邏輯見下圖,進一步簡化主要有:
-
將新註冊的實例信息推送給訂閱該服務的訂閱者 -
將新註冊的實例信息增量同步給集羣中的其他節點
服務發現的邏輯進一步簡化爲:
-
定時從註冊中心查詢最新服務實例列表信息 -
定時頻率通常爲6秒,發生異常爲60秒
集羣中節點通信原理可以進一步簡化爲:
-
每個節點用於全量的註冊快照信息
-
新節點加入集羣時會從集羣中某節點發起全量同步
-
節點之間每隔5秒校驗緩存的註冊快照信息
-
節點之間每隔2秒進行一輪健康檢查用於關閉/新建/刷新gRPC連接
健康檢查類型與場景進一步可以簡化爲:
-
臨時節點通過gRPC連接保鮮實現,保鮮頻率爲5秒
-
臨時節點註冊使用Distro協議,持久節點註冊使用Raft協議
-
持久節點支持客戶端心跳和服務端探活兩種方式
-
持久節點探活支持HTTP、TCP等探活類型
本文分享自微信公衆號 - 瓜農老梁(gh_01130ae30a83)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。