Files
aiot-platform-cloud/docs/production-config-guide.md
lzh f9aa7828c7 feat: 完善 iot-gateway 生产环境配置
- 添加 IoT 网关特有的配置项环境变量支持
- 支持 HTTP/MQTT/TCP/EMQX 协议配置
- 支持设备 RPC 和 Token 配置
- 支持消息总线配置
- 添加生产环境配置文档
2026-01-13 12:32:14 +08:00

4.2 KiB
Raw Blame History

生产环境配置说明

本文档说明如何使用 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-server
  • viewsh-module-infra-server
  • viewsh-module-iot-server

需要 RocketMQ 的服务

  • viewsh-module-iot-server
  • viewsh-module-iot-gateway

仅需要 Redis 的服务

  • viewsh-gateway
  • viewsh-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:

  1. 临时修改:在 Nacos 中修改(无需重启)
  2. 永久修改:修改 .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

下一步

配置完成后,参考 部署操作指南 进行部署。