Files
HAOVP/docs/nacos-config-guide.md
T

3.2 KiB
Raw Blame History

Nacos 配置中心方案

一、配置架构

1.1 配置文件结构

application.yml (本地,极简)
├── Nacos: common.yaml (公共配置)
├── Nacos: common-redis-${profile}.yaml (按环境的Redis配置)
└── Nacos: ${spring.application.name}.yaml (服务专属配置)

1.2 Data ID 设计

Data ID 说明
common.yaml 公共配置(MySQL连接池、MyBatis、Feign等)
common-redis-dev.yaml 开发环境Redis单机配置
common-redis-ha.yaml 生产环境Redis Sentinel配置
video-gateway.yaml Gateway服务专属配置
video-auth.yaml Auth服务专属配置
video-user.yaml User服务专属配置
video-content.yaml Content服务专属配置
video-comment.yaml Comment服务专属配置
video-recommend.yaml Recommend服务专属配置
video-admin.yaml Admin服务专属配置

二、使用方式

2.1 初始化 Nacos 配置

方式一:执行 SQL 脚本

# 连接 Nacos 数据库
mysql -u root -p nacos_config < sql/nacos-config-init.sql

方式二:通过 Nacos 控制台手动创建

  1. 登录 Nacos 控制台:http://localhost:8848/nacos(默认账号:nacos/nacos)
  2. 进入「配置管理」->「配置列表」
  3. 点击「+」创建配置,Data ID 和内容参考 sql/nacos-config-init.sql

2.2 环境切换

通过 SPRING_PROFILES_ACTIVE 环境变量切换环境:

开发环境:

environment:
  - SPRING_PROFILES_ACTIVE=dev

会加载 common-redis-dev.yaml,使用单机 Redis。

生产/高可用环境:

environment:
  - SPRING_PROFILES_ACTIVE=ha
  - REDIS_SENTINEL_NODES=192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379

会加载 common-redis-ha.yaml,使用 Sentinel 哨兵模式。

2.3 配置热更新

修改 Nacos 中的配置后,服务会自动感知并更新(refreshEnabled=true),无需重启!

三、配置优先级

环境变量 > Nacos 配置 > 本地 application.yml

四、本地开发

本地开发时,启动 Nacos 后:

  1. 确保 Nacos 中已有配置
  2. 启动服务,默认使用 dev profile
  3. 自动连接开发环境的 Redis

五、生产部署

# 1. 执行 SQL 初始化配置
mysql -u root -p nacos_config < sql/nacos-config-init.sql

# 2. 构建镜像
mvn clean package -DskipTests
docker-compose -f docker-compose-node-01.yml build

# 3. 启动服务
docker-compose -f docker-compose-node-01.yml up -d

六、常见问题

Q1: 配置没有生效?

检查以下几点:

  1. Nacos 是否正常运行
  2. 服务启动日志是否显示连接 Nacos 成功
  3. 配置的 Data ID 是否正确
  4. spring.config.import 是否正确配置

Q2: 如何查看当前使用的配置?

# 查看服务日志
docker logs -f video-auth | grep -i nacos

Q3: 如何动态修改配置?

  1. 登录 Nacos 控制台
  2. 找到对应配置
  3. 编辑并发布
  4. 服务自动感知更新

七、核心优势

优势 说明
配置集中管理 所有配置在 Nacos 统一管理
环境隔离 通过 profile 区分环境
热更新 修改配置无需重启
无需重构镜像 改配置只需在 Nacos 操作
代码精简 本地只留 Nacos 连接配置