vlambda博客
学习文章列表

Nacos15# Nacos配置中心核心原理提要

瓜农老梁
啃码、撸码、笔记
124篇原创内容
Official Account

引言

通过对Nacos配置中心源码阅读,将其核心原理归纳提炼。包含:客户端逻辑和服务端逻辑。

一、内容提要

配置中心客户端逻辑

1.客户端流程概览

客户端整体流程可以进一步简化为:

  • 客户端通过长轮询的方式比较配置内容md5变更

  • 长轮询通过从阻塞队列不断获取元素判断是否立即执行

  • 阻塞队列无元素等待5秒执行

Nacos15# Nacos配置中心核心原理提要

2.Listener注册逻辑

客户端Listener注册逻辑可以进一步简化为:

  • 客户端缓存了CacheData
  • 阻塞队列中添加了元素new Object()
Nacos15# Nacos配置中心核心原理提要

3.配置变更检测逻辑

客户端长轮询逻辑,可以进一步简化为:

  • 客户端收到服务端推送的变更事件后发起MD5校验
  • 客户端主动向服务端发起MD5校验
Nacos15# Nacos配置中心核心原理提要

4.阻塞队列添加时机

Nacos15# Nacos配置中心核心原理提要

二、配置中心服务端逻辑

1.服务端变更发布流程

服务端变更发布流程可以进一步简化为:

  • 将变更内容写入数据库

  • 向本节点连接的Client发送变更通知

  • 向集群中其他节点发送变更通知

Nacos15# Nacos配置中心核心原理提要

2.向Client发送变更通知

向Client发送变更通知进一步简化为:

  • 每个节点只负责直连到本节点的Client发送通知
  • 通知通过缓存的gRPC连接向Client发送
Nacos15# Nacos配置中心核心原理提要

3.向其他节点发送变更通知

三、小结

如何检测到配置内容的变更?无非以下两种方式,上文是具体细节。

1.客户端通过长轮询向服务端查询
2.服务端向客户端发送变更通知

瓜农老梁
啃码、撸码、笔记
124篇原创内容
Official Account