30c17f01e9
- Align deployment guidance with the current three-node Compose topology - Document the current frontend architecture and development workflow - Replace the stale API list with a controller-based route index
40 lines
1.8 KiB
Markdown
40 lines
1.8 KiB
Markdown
# Nacos 配置中心
|
|
|
|
所有后端服务通过 `src/main/resources/application.yml` 导入以下配置:
|
|
|
|
```text
|
|
common.yaml
|
|
common-redis-${spring.profiles.active}.yaml
|
|
${spring.application.name}.yaml
|
|
```
|
|
|
|
其中 `${spring.application.name}` 为 `video-gateway`、`video-auth`、`video-user`、`video-content`、`video-comment`、`video-recommend` 或 `video-admin`。
|
|
|
|
## 环境切换
|
|
|
|
- `SPRING_PROFILES_ACTIVE=dev`:连接开发环境 Redis 单机配置
|
|
- `SPRING_PROFILES_ACTIVE=ha`:连接 Redis Sentinel 配置;节点列表通过 `REDIS_SENTINEL_NODES` 提供
|
|
|
|
配置优先级为:环境变量 > Nacos > 本地 `application.yml`。导入使用 `refreshEnabled=true`,发布 Nacos 配置后服务可动态刷新支持刷新的配置项。
|
|
|
|
## 初始化
|
|
|
|
Docker Compose 会挂载 `backend/sql/nacos-schema.sql` 和 `backend/sql/nacos-config-init.sql`。已有 MySQL 数据卷不会重复执行初始化脚本;需要补配置时,应在确认备份后通过 Nacos 控制台或 SQL 文件导入。
|
|
|
|
```bash
|
|
docker exec -i mysql mysql -uroot -p"$MYSQL_ROOT_PASSWORD" nacos_config < backend/sql/nacos-config-init.sql
|
|
```
|
|
|
|
命令中的密码必须来自当前部署环境变量,文档不提供默认生产密码。
|
|
|
|
## 认证与地址
|
|
|
|
Nacos 2.3.2 在 Compose 中启用认证。业务服务通过 `NACOS_HOST`、`NACOS_PORT`、`NACOS_USERNAME`、`NACOS_PASSWORD` 连接;跨主机部署还需设置 `NACOS_NAMESPACE`、`NACOS_GROUP` 和服务注册 IP 变量。不要把 Nacos、MySQL、Redis 管理端口直接暴露到公网。
|
|
|
|
## 排查顺序
|
|
|
|
1. `docker compose ps` 确认 MySQL 和 Nacos 健康。
|
|
2. 查看服务日志中是否出现 Nacos 认证和配置导入成功。
|
|
3. 在 Nacos 控制台核对 Data ID、Group、Namespace。
|
|
4. 检查 `common-redis-dev.yaml` 或 `common-redis-ha.yaml` 是否与 `SPRING_PROFILES_ACTIVE` 一致。
|