docs: Refresh deployment and API documentation

- 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
This commit is contained in:
Toys-A
2026-08-18 23:37:49 +08:00
parent 23c2912ea8
commit 30c17f01e9
12 changed files with 286 additions and 4126 deletions
+23 -113
View File
@@ -1,129 +1,39 @@
# Nacos 配置中心方案
# Nacos 配置中心
## 一、配置架构
所有后端服务通过 `src/main/resources/application.yml` 导入以下配置:
### 1.1 配置文件结构
```
application.yml (本地,极简)
├── Nacos: common.yaml (公共配置)
├── Nacos: common-redis-${profile}.yaml (按环境的Redis配置)
└── Nacos: ${spring.application.name}.yaml (服务专属配置)
```text
common.yaml
common-redis-${spring.profiles.active}.yaml
${spring.application.name}.yaml
```
### 1.2 Data ID 设计
其中 `${spring.application.name}` 为 `video-gateway`、`video-auth`、`video-user`、`video-content`、`video-comment`、`video-recommend` 或 `video-admin`。
| 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服务专属配置 |
## 环境切换
## 二、使用方式
- `SPRING_PROFILES_ACTIVE=dev`:连接开发环境 Redis 单机配置
- `SPRING_PROFILES_ACTIVE=ha`:连接 Redis Sentinel 配置;节点列表通过 `REDIS_SENTINEL_NODES` 提供
### 2.1 初始化 Nacos 配置
配置优先级为:环境变量 > Nacos > 本地 `application.yml`。导入使用 `refreshEnabled=true`,发布 Nacos 配置后服务可动态刷新支持刷新的配置项。
**方式一:执行 SQL 脚本**
## 初始化
Docker Compose 会挂载 `backend/sql/nacos-schema.sql` 和 `backend/sql/nacos-config-init.sql`。已有 MySQL 数据卷不会重复执行初始化脚本;需要补配置时,应在确认备份后通过 Nacos 控制台或 SQL 文件导入。
```bash
# 连接 Nacos 数据库
mysql -u root -p nacos_config < sql/nacos-config-init.sql
docker exec -i mysql mysql -uroot -p"$MYSQL_ROOT_PASSWORD" nacos_config < backend/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 环境切换
Nacos 2.3.2 在 Compose 中启用认证。业务服务通过 `NACOS_HOST`、`NACOS_PORT`、`NACOS_USERNAME`、`NACOS_PASSWORD` 连接;跨主机部署还需设置 `NACOS_NAMESPACE`、`NACOS_GROUP` 和服务注册 IP 变量。不要把 Nacos、MySQL、Redis 管理端口直接暴露到公网。
通过 `SPRING_PROFILES_ACTIVE` 环境变量切换环境:
## 排查顺序
**开发环境:**
```yaml
environment:
- SPRING_PROFILES_ACTIVE=dev
```
会加载 `common-redis-dev.yaml`,使用单机 Redis。
**生产/高可用环境:**
```yaml
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
## 五、生产部署
```bash
# 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: 如何查看当前使用的配置?
```bash
# 查看服务日志
docker logs -f video-auth | grep -i nacos
```
### Q3: 如何动态修改配置?
1. 登录 Nacos 控制台
2. 找到对应配置
3. 编辑并发布
4. 服务自动感知更新
## 七、核心优势
| 优势 | 说明 |
|------|------|
| 配置集中管理 | 所有配置在 Nacos 统一管理 |
| 环境隔离 | 通过 profile 区分环境 |
| 热更新 | 修改配置无需重启 |
| 无需重构镜像 | 改配置只需在 Nacos 操作 |
| 代码精简 | 本地只留 Nacos 连接配置 |
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` 一致。