Nacos 注册中心执行流程的详细说明
一、定义
以下是 Nacos 注册中心执行流程的详细说明,涵盖 服务注册、服务发现、健康检查、集群数据同步 等核心环节的完整生命周期:
二、提供者注册流程
1、提供者发起注册请求
-
触发时机:因为提供者集成了Nacos Client(Nacos的客户端),所以在提供者启动时,其实是通过 Nacos Client(Nacos的客户端)自动触发注册的
-
注册请求发送
-
将请求参数构造成 Instance 对象(包含ip、port、weight、metadata等)
-
通过HTTP/RPC发送注册请求到Nacos Server(Nacos的服务端)
-


-
请求处理:
-
请求URL: /nacos/v1/ns/instance
-
方法: POST
-
参数: serviceName, ip, port, clusterName等
-
2、Nacos服务端接收和处理提供者发起的注册请求
i、Nacos服务端请求处理入口:
-
InstanceController接收注册请求
-
参数校验(服务名、IP、端口等)
ii、Nacos服务端处理注册请求的核心:

iii、提供者的存储:
-
若该提供者不存在,创建新的 Service 对象并初始化(使用命名空间进行隔离)
-
更新提供者的实例列表,并将新实例加入对应集群(Cluster)中
VI、数据持久化:
-
临时实例(ephemeral=true) :仅写入本地内存(ConcurrentHashMap),通过 Distro 协议异步同步到其他节点
-
持久实例(ephemeral=false) :通过 Raft 协议持久化到磁盘(需多数节点确认)
Vii、事件通知
-
发布InstanceChangeEvent事件
-
通知订阅该服务提供者实例的消费者(因为消费者端也集成了Nacos Client【Nacos的客户端】)
三、服务发现流程
1、消费者订阅服务提供者
因为消费者端其实也集成了 Nacos Client【Nacos的客户端】,也是通过 Nacos的客户端发送HTTPS请求来获取Nacos服务端中的提供者服务列表
- 初始化订阅:

2、首次获取服务列表:
-
立即调用GET请求获取全量服务列表
-
URL: /nacos/v1/ns/instance/list
-
参数: serviceName、clusters、healthyOnly等
3、消费者后续通过 HTTP 长轮询(Long Polling)监听变更:
-
消费者启动长轮询检查服务变更
-
默认超时时间30秒
-
请求URL: /nacos/v1/ns/instance/list
-
处理逻辑:
-
若服务无变化,请求挂起最多 30 秒
-
若期间发生变更,立即返回新数据
-
超时后客户端重新发起请求
-
4、Nacos服务端处理消费者发起的发现请求:
i、检查本地缓存:
-
检查服务是否有变更(通过lastModified时间戳)
-
无变更时挂起请求(通过Servlet 3.0异步机制)
ii、变更推送机制:
-
使用DelayQueue实现延迟通知
-
当服务变更时,立即响应挂起的请求
-
返回变更后的服务列表
iii、数据过滤:
-
根据healthyOnly参数过滤不健康实例
-
根据clusters参数过滤指定集群
-
根据metadata过滤匹配的实例
5、消费者端负载均衡:
-
本地缓存:消费者缓存服务提供者实例列表到本地缓存,避免频繁请求服务端
-
负载策略:支持随机、轮询、权重等算法(可自定义扩展)
四、健康检查流程
1、提供者/消费者端心跳(临时实例)
-
心跳机制:提供者/消费者端每 5 秒发送心跳包到 Nacos服务端(POST /nacos/v1/ns/instance/beat)
-
超时处理:
-
Nacos服务端若 15 秒未收到心跳,将标记提供者实例为不健康(health=false)
-
30 秒未收到心跳,直接删除实例,会向消费者以UDP协议方式推送检测心跳的结果
-
2、服务端主动探测(持久实例)
-
探测方式:Nacos Server 主动发起 TCP/HTTP 请求到实例的健康检查端点(需配置)
-
失败处理:连续失败阈值触发后,标记实例不健康
3、健康状态同步
-
服务端更新实例状态后:
-
通过 Distro/Raft 协议同步到集群其他节点
-
触发服务变更事件,通知订阅消费者端
-
五、集群数据同步
1、临时实例同步(Distro 协议)
-
AP 模式:保证最终一致性,适用于高可用场景
-
同步流程:
-
1、提供者端请求的节点作为责任节点,负责写入数据
-
2、责任节点异步批量同步数据到其他节点
-
3、节点间通过 CRC 校验数据一致性,失败时触发全量同步
-
2、持久实例同步(Raft 协议)
-
CP 模式:保证强一致性,适用于配置类数据
-
选举机制:Raft Leader 处理写请求,日志复制到多数节点后提交
六、执行流程图解


浙公网安备 33010602011771号