Nacos15# Nacos配置中心核心原理提要
瓜农老梁
啃码、撸码、笔记
Official Account
引言
通过对Nacos配置中心源码阅读,将其核心原理归纳提炼。包含:客户端逻辑和服务端逻辑。
配置中心客户端逻辑
1.客户端流程概览
客户端整体流程可以进一步简化为:
-
客户端通过长轮询的方式比较配置内容md5变更
-
长轮询通过从阻塞队列不断获取元素判断是否立即执行
-
阻塞队列无元素等待5秒执行
2.Listener注册逻辑
客户端Listener注册逻辑可以进一步简化为:
-
客户端缓存了CacheData -
阻塞队列中添加了元素new Object()
3.配置变更检测逻辑
客户端长轮询逻辑,可以进一步简化为:
-
客户端收到服务端推送的变更事件后发起MD5校验 -
客户端主动向服务端发起MD5校验
4.阻塞队列添加时机
1.服务端变更发布流程
服务端变更发布流程可以进一步简化为:
-
将变更内容写入数据库
-
向本节点连接的Client发送变更通知
-
向集群中其他节点发送变更通知
2.向Client发送变更通知
向Client发送变更通知进一步简化为:
-
每个节点只负责直连到本节点的Client发送通知 -
通知通过缓存的gRPC连接向Client发送
3.向其他节点发送变更通知
如何检测到配置内容的变更?无非以下两种方式,上文是具体细节。
1.客户端通过长轮询向服务端查询
2.服务端向客户端发送变更通知
瓜农老梁
啃码、撸码、笔记
Official Account