Nacos 集群部署、服务注册发现、配置动态管理、灰度发布与多环境隔离
某公司 30+ 微服务使用 Nacos 1.x 单节点,某次 Nacos 宕机导致全链路服务发现中断 2 小时。需升级至 Nacos 2.x 并部署高可用集群。
部署 3 节点 Nacos 2.2 集群 + MySQL 8.0(主从)做持久化存储。使用 gRPC 长连接替代 HTTP 短轮询,降低资源消耗。Nginx 做负载均衡转发。
开发/测试/预发/生产四套环境,每套环境各有 20+ 配置文件。之前用本地 application.yml 管理,改配置需重新打包。需迁移到 Nacos 配置中心统一管理。
Nacos Namespace 隔离环境(dev/test/staging/prod),Data ID 命名规范:{service}-{env}.yaml。利用 Nacos Group 实现灰度配置:DEFAULT_GROUP 全量,GRAY_GROUP 灰度。
某服务更新后部分节点 OOM 假死(进程在但无法处理请求),Nacos 临时实例的健康检查心跳正常,导致网关持续转发流量到异常节点,大量请求超时。
将关键服务的实例类型切换为永久实例(ephemeral=false),添加 Spring Boot Actuator 自定义健康端点。网关侧配合 Sentinel 熔断兜底。