主题
Nacos 学习路线
适用版本:Nacos 3.2.4(2026-08-27 稳定版);2.5.4 是 2.x 维护线。3.x 要求 Java 17,2.5.x 仍支持 Java 8;客户端与服务端小版本以官方兼容性说明为准。
这套内容解决什么问题
Nacos 常被当成「注册中心 + 配置中心」两个功能拼在一起,真正难的是它们在故障时的行为:临时实例什么时候被摘掉、配置推送为什么没生效、Nacos 全挂后调用还能不能继续、3.x 升级后端口和鉴权为什么全变了。本专栏按「定位 → 注册 → 配置 → 集群 → 高可用 → 监控 → AI 场景 → 踩坑」组织,不按控制台菜单组织。
先分清三件事
| 能力 | 解决什么 | 一致性来源 | 典型误用 |
|---|---|---|---|
| Naming | 服务名到实例列表 | 临时实例 Distro(AP)、持久实例 Raft(CP) | 把注册中心当配置库 |
| Config | 配置集中管理与动态生效 | MySQL/Derby + 本地快照 + 变更通知 | 把配置中心当高频 KV |
| AI Registry(3.x) | MCP Server/Tool、A2A Agent、Prompt/Skill 的注册与发现 | 与配置相同的存储与推送底座 | 当成模型托管或推理平台 |
阅读顺序
| 顺序 | 篇目 | 解决的问题 | 读完的验收动作 |
|---|---|---|---|
| 1 | 01-定位与整体架构 | Nacos 到底是什么、两条链路怎么走 | 画出命名与配置两条链路 |
| 2 | 02-服务注册与发现 | 实例怎么注册、怎么被摘除 | 注册一个实例并观察 30s 生命周期 |
| 3 | 03-配置中心 | 配置怎么推送、刷新边界在哪 | 改一条配置并确认哪些 Bean 会重建 |
| 4 | 04-集群与一致性 | 3 节点怎么同步、分区时谁可写 | 说清 Distro、Raft、MySQL 各管什么 |
| 5 | 05-高可用与容量规划 | 接入方式、缓存、容量与备份 | 估算自己环境的连接数与推送量 |
| 6 | 06-Nacos与AI:MCP与Agent注册 | 工具和 Agent 怎么动态发现 | 注册一个 MCP Server 并查到它 |
| 7 | 07-Nacos生产踩坑 | 线上八类高频故障怎么定位 | 按「现象→证据→根因→处置」排一次 |
| 8 | 08-监控指标与告警 | 盯哪些指标、什么先兆、告警与处置顺序 | 为一次实例骤降和一次配置不生效各列三条证据 |
生产执行项见 99-生产检查清单。
前置条件
- Java 17、Maven 3.8+、Docker;读 3.x 示例不需要先装 Nacos。
- 知道 HTTP、DNS、TCP 长连接的基本概念。
- Spring 侧示例基于 Spring Boot 3.5 + Spring Cloud Alibaba 2025.0.0.0;不熟自动装配先读 03-Spring-Boot自动装配。
环境自检:
bash
java -version && mvn -v && docker version怎么读
- 01 先建立「Naming 与 Config 是两条链路」的判断,后面所有故障都能归到其中一条。
- 02、03 各自跑一遍最小上手;只读不跑,容易把「注册成功」和「可调用」混为一谈。
- 04、05 建议在准备上生产前读,带着节点数、实例数、配置数来算。
- 06 只写有官方依据的 AI Registry 能力;MCP/A2A 规范仍在演进,落地前回查对应版本文档。
- 07 可以出故障时直接查;每条的「证据」都是可执行命令或指标。
- 08 与 05 配套:05 算容量和接入,08 看先兆、定告警级别和处置顺序。
学完的验收
不看笔记,能完成下面五件事:
- 画出 Nacos 3.x 的 8848、9848、9849、7848、8080 各自承载什么,并说明只放通 8848 会怎样。
- 说清临时实例与持久实例分别走 Distro 还是 Raft,以及各自在分区时的行为。
- 解释一次配置变更从控制台到应用 Bean 的完整路径,并指出哪类 Bean 不会自动重建。
- 估算一个有 200 个服务、每个服务 10 个实例、3 节点 Nacos 的环境,客户端长连接大致是什么量级。
- 给定「实例骤降」和「配置不生效」两个现象,能按 08 说出先查哪三条证据、对应什么告警级别、处置顺序是什么。
版本基线
| 项 | 结论 | 说明 |
|---|---|---|
| Nacos 稳定版 | 3.2.4(2026-08-27) | 3.3.0 仍在 RC,不作为生产基线 |
| Nacos 2.x 维护版 | 2.5.4(2026-08-27) | Java 8;不能升 17 时停留在 2.5.x 并跟补丁 |
| JDK | 3.x 要求 17;2.5.x 支持 8 | 升级 3.x 前先确认构建与运行环境 |
| Spring Cloud Alibaba | 2025.0.0.0(Boot 3.5,nacos-client 3.0.3) | 2025.1.0.0 对应 Boot 4.0,client 3.1.1 |
| 端口 | 8848 HTTP、9848 客户端 gRPC、9849 集群 gRPC、7848 JRaft、8080 控制台 | 3.x 控制台独立,不再在 8848/nacos |
| 默认命名空间 | 3.x 为 public;2.x 默认为空字符串 | 从 2.x 升级时注意迁移与兼容开关 |
3.0.0–3.2.3 存在鉴权作用域错配问题,3.2.4 修复;仍在该区间内的环境应先升级或开启客户端鉴权并限制端口暴露。以官方安全公告为准。
与相邻目录的关系
- Spring Cloud 使用视角的注册与配置在 02-服务注册与发现、03-配置中心;本专栏讲 Nacos 自身机制与运维。
- 服务拆分与边界在 28_DDD。
- 工具与 Agent 在本平台的注册与发现见 06-Nacos与AI:MCP与Agent注册;本专栏只讲注册与发现这一层,不涉及编排框架。
- 容器化部署与探针在 17_容器化与K8s。