Nacos15# Nacos配置中心核心原理提要
引言
通過(guò)對(duì)Nacos配置中心源碼閱讀,將其核心原理歸納提煉。包含:客戶端邏輯和服務(wù)端邏輯。
配置中心客戶端邏輯
1.客戶端流程概覽
客戶端整體流程可以進(jìn)一步簡(jiǎn)化為:
客戶端通過(guò)長(zhǎng)輪詢的方式比較配置內(nèi)容md5變更
長(zhǎng)輪詢通過(guò)從阻塞隊(duì)列不斷獲取元素判斷是否立即執(zhí)行
阻塞隊(duì)列無(wú)元素等待5秒執(zhí)行

2.Listener注冊(cè)邏輯
客戶端Listener注冊(cè)邏輯可以進(jìn)一步簡(jiǎn)化為:
客戶端緩存了CacheData 阻塞隊(duì)列中添加了元素new Object()

3.配置變更檢測(cè)邏輯
客戶端長(zhǎng)輪詢邏輯,可以進(jìn)一步簡(jiǎn)化為:
客戶端收到服務(wù)端推送的變更事件后發(fā)起MD5校驗(yàn) 客戶端主動(dòng)向服務(wù)端發(fā)起MD5校驗(yàn)

4.阻塞隊(duì)列添加時(shí)機(jī)

1.服務(wù)端變更發(fā)布流程
服務(wù)端變更發(fā)布流程可以進(jìn)一步簡(jiǎn)化為:
將變更內(nèi)容寫(xiě)入數(shù)據(jù)庫(kù)
向本節(jié)點(diǎn)連接的Client發(fā)送變更通知
向集群中其他節(jié)點(diǎn)發(fā)送變更通知

2.向Client發(fā)送變更通知
向Client發(fā)送變更通知進(jìn)一步簡(jiǎn)化為:
每個(gè)節(jié)點(diǎn)只負(fù)責(zé)直連到本節(jié)點(diǎn)的Client發(fā)送通知 通知通過(guò)緩存的gRPC連接向Client發(fā)送

3.向其他節(jié)點(diǎn)發(fā)送變更通知

如何檢測(cè)到配置內(nèi)容的變更?無(wú)非以下兩種方式,上文是具體細(xì)節(jié)。
1.客戶端通過(guò)長(zhǎng)輪詢向服務(wù)端查詢
2.服務(wù)端向客戶端發(fā)送變更通知
評(píng)論
圖片
表情
