跳到正文

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 -vz 8848/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。

把一门技术讲透到既懂也会用