- 添加 IoT 网关特有的配置项环境变量支持 - 支持 HTTP/MQTT/TCP/EMQX 协议配置 - 支持设备 RPC 和 Token 配置 - 支持消息总线配置 - 添加生产环境配置文档
4.2 KiB
4.2 KiB
生产环境配置说明
本文档说明如何使用 application-prod.yaml 配置文件。
配置架构
三层配置体系
1. application.yaml (基础配置)
↓
2. application-prod.yaml (生产环境配置 + 环境变量占位符)
↓
3. Nacos 配置中心 (动态配置,优先级最高)
配置优先级
Nacos 配置 > 环境变量 > application-prod.yaml 默认值 > application.yaml
环境变量命名规范
通用环境变量
| 环境变量 | 说明 | 默认值 | 示例 |
|---|---|---|---|
NACOS_SERVER_ADDR |
Nacos 服务器地址 | 127.0.0.1:8848 | 127.0.0.1:8848 |
NACOS_USERNAME |
Nacos 用户名 | 空 | nacos |
NACOS_PASSWORD |
Nacos 密码 | 空 | nacos123 |
NACOS_NAMESPACE |
Nacos 命名空间 | 空 | prod |
NACOS_GROUP |
Nacos 分组 | DEFAULT_GROUP | DEFAULT_GROUP |
数据库环境变量
| 环境变量 | 说明 | 默认值 |
|---|---|---|
MYSQL_HOST |
MySQL 主机地址 | 127.0.0.1 |
MYSQL_PORT |
MySQL 端口 | 3306 |
MYSQL_DATABASE |
数据库名 | aiot_platform |
MYSQL_USER |
数据库用户名 | root |
MYSQL_PASSWORD |
数据库密码 | 空 |
Redis 环境变量
| 环境变量 | 说明 | 默认值 |
|---|---|---|
REDIS_HOST |
Redis 主机地址 | 127.0.0.1 |
REDIS_PORT |
Redis 端口 | 6379 |
REDIS_DATABASE |
Redis 数据库索引 | 0 |
REDIS_PASSWORD |
Redis 密码 | 空 |
消息队列环境变量
| 环境变量 | 说明 | 默认值 |
|---|---|---|
ROCKETMQ_NAMESRV_ADDR |
RocketMQ NameServer 地址 | 127.0.0.1:9876 |
使用方式
方式 1: Docker Compose 环境变量注入(推荐)
在 docker-compose.core.yml 中已配置:
viewsh-module-system-server:
environment:
SPRING_PROFILES_ACTIVE: prod # ← 激活 prod 配置
NACOS_SERVER_ADDR: ${NACOS_HOST}:${NACOS_PORT}
MYSQL_HOST: ${MYSQL_HOST}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
# ... 其他环境变量
方式 2: Nacos 配置中心覆盖
在 Nacos 控制台创建配置文件,会覆盖环境变量和本地配置:
Data ID: system-server-prod.yaml
Group: DEFAULT_GROUP
spring:
datasource:
dynamic:
datasource:
master:
password: 从Nacos管理的密码 # ← 覆盖环境变量
方式 3: 混合使用(最佳实践)
- 环境变量:配置基础设施连接信息(MySQL、Redis、Nacos)
- Nacos:配置业务参数、功能开关、动态配置
各服务配置差异
需要 MySQL 的服务
viewsh-module-system-serverviewsh-module-infra-serverviewsh-module-iot-server
需要 RocketMQ 的服务
viewsh-module-iot-serverviewsh-module-iot-gateway
仅需要 Redis 的服务
viewsh-gatewayviewsh-module-iot-gateway
激活生产环境配置
在 Docker Compose 中
已在 docker-compose.core.yml 中配置:
environment:
SPRING_PROFILES_ACTIVE: prod
手动启动
java -jar app.jar --spring.profiles.active=prod
配置验证
查看生效的配置
# 进入容器
docker exec -it aiot-system-server sh
# 查看环境变量
env | grep MYSQL
env | grep REDIS
# 查看 Spring Boot 配置
curl http://localhost:48081/actuator/env
常见问题
Q: 如何确认使用了 prod 配置?
A: 查看日志,应该看到:
The following 1 profile is active: "prod"
Q: 环境变量和 Nacos 哪个优先级高?
A: Nacos 配置优先级最高,会覆盖环境变量。
Q: 如何临时修改配置?
A:
- 临时修改:在 Nacos 中修改(无需重启)
- 永久修改:修改
.env文件并重启容器
配置文件位置
viewsh-gateway/src/main/resources/application-prod.yaml
viewsh-module-system/viewsh-module-system-server/src/main/resources/application-prod.yaml
viewsh-module-infra/viewsh-module-infra-server/src/main/resources/application-prod.yaml
viewsh-module-iot/viewsh-module-iot-server/src/main/resources/application-prod.yaml
viewsh-module-iot/viewsh-module-iot-gateway/src/main/resources/application-prod.yaml
下一步
配置完成后,参考 部署操作指南 进行部署。