跳到主要内容

Nacos 服务注册发现全链路

📺 配套视频

📝 知识点总结

服务注册全链路

Spring Boot 启动
→ NacosAutoServiceRegistration 监听 WebServerInitializedEvent
→ NacosServiceRegistry#register()
→ NamingClientProxy#registerService()
→ gRPC 长连接发送 InstanceRequest 到 Nacos Server
→ InstanceRequestHandler 处理注册请求
→ 写入 ServiceManager 内存注册表

核心组件职责

组件职责
NacosServiceRegistrySpring Cloud 适配层,对接 ServiceRegistry 接口
NamingClientProxy客户端代理,封装 gRPC/HTTP 通信
InstanceRequestHandler服务端请求处理器
ServiceManager内存注册表,存储所有服务实例

心跳与健康检查

  • 临时实例:客户端通过 gRPC 长连接保活,连接断开即下线
  • 持久实例:服务端主动探测(TCP/HTTP),超时标记不健康

服务发现流程

  1. 消费者调用 NamingService#selectInstances() 获取实例列表
  2. 优先从本地缓存获取
  3. 缓存未命中 → gRPC 请求服务端查询
  4. 服务端通过 gRPC 推送变更事件,客户端实时更新本地缓存

🔗 延伸阅读