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



















 
 
 









 
 
 
 