主题
Nacos 生产检查清单
适用 Nacos 3.2.4(2.5.4 维护线单独标注);Spring Cloud Alibaba 2025.0.0.0 / Boot 3.5。每条都可勾选,括号内是默认值或判断依据;版本差异以官方文档为准。 只列「不做会出事」的动作,机制解释见各篇正文。
上线前
- [ ] 版本与补丁:服务端 ≥ 3.2.4;3.0.0–3.2.3 有鉴权作用域问题,不得直接上线。
mvn dependency:tree确认只有一个nacos-client,且与 SCA/Boot 版本匹配(SCA 2025.0.0.0 自带 client 3.0.3,要求 3.x 服务端)。 - [ ] 集群与存储:至少 3 个奇数节点、跨机架/可用区,
cluster.conf填 8848 主端口;外置 MySQL 已导入mysql-schema.sql,MODE=cluster,MySQL 有备份与主从。 - [ ] 端口、接入与容量:8848/9848/9849 全放通且走 TCP 四层转发;控制台 8080 只对公司网开放;LB 空闲超时大于客户端约 5s 的保活间隔;按「客户端进程数 × 节点数 × 连接模块数」估连接,
ulimit -n与直接内存已调大。 - [ ] 鉴权基线:
NACOS_AUTH_TOKEN(Base64 ≥32 字节)、NACOS_AUTH_IDENTITY_KEY/VALUE全节点一致;nacos管理员密码已初始化,无默认口令;控制台/Admin/Registry 不暴露公网。 - [ ] 坐标与客户端配置:
dev/test/prod用不同 Namespace ID,2.x 空字符串 Namespace 已迁移到public;SCA 2020+ 用spring.config.import(不是bootstrap.yml);@Value配@RefreshScope,动态项用@ConfigurationProperties。 - [ ] 配置治理:生产发布走审批与
cas;敏感配置用cipher-{algorithm}-加密插件 + KMS;灰度(Beta IP/Tag)有回滚预案,连接池/DataSource 不列入热更新范围。
运行中
- [ ] 连接与注册:gRPC 连接数与前缀客户端数匹配、连接建立/断开无异常尖峰;实例总数、健康/不健康数、心跳超时数、持久实例 leader 切换次数;连接数突增先查 LB 超时,实例数突降先于调用失败出现。
- [ ] 配置面:发布耗时、推送失败数、客户端拉取失败、dump 失败、本地快照时间、灰度版本数(默认上限 10,
nacos.config.gray.version.max.count)。 - [ ] 资源面:JVM 堆/GC、直接内存、文件句柄、CPU、磁盘;MySQL 慢查询、连接池等待、主从延迟、
config_info/his_config_info体量。 - [ ] 安全面:鉴权失败次数、异常账号与
*:*权限、MCP Server 可见性(生产应为PRIVATE)、私有地址导入拦截数。
故障时
- [ ] 实例消失/调用无实例/连接数异常 → 先
nc -vz8848/9848/9849 → 查 LB 空闲超时与 9848 是否 TCP → 再查心跳、GC 停顿、推空保护与短生命周期客户端 → 最后看服务端连接数;不要先重启 Nacos。 - [ ] 配置改了不生效 → 查 namespace/group/dataId → 查
spring.config.import→ 查@RefreshScope/@ConfigurationProperties→ 查同名 key 优先级 → 查~/nacos/config/快照。 - [ ] Nacos 全挂 → 已运行 Consumer 用本地缓存直连;新 Consumer 从快照启动;先恢复 MySQL 再恢复节点;不要同时重启所有客户端,避免重连风暴。
- [ ] 升级后 404/401/410 → 404 查是否访问了 8848/nacos(3.x 控制台是 8080);401 查 token/identity;410 查 v1/v2 旧 API 是否已剥离,必要时接
api-legacy-adapter。