feat: iot-gateway 支持 Nacos 配置管理
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled

- 在 application.yaml 中添加 Nacos config import
- 在 application-prod.yaml 中添加 Nacos 配置
- 在 docker-compose.core.yml 中注入 Nacos 环境变量
- 支持配置统一管理和动态刷新
- 与其他微服务保持架构一致性
This commit is contained in:
lzh
2026-01-13 14:10:05 +08:00
parent 98d3db9ade
commit 62978560c5
4 changed files with 126 additions and 0 deletions

View File

@@ -113,6 +113,57 @@ HEALTH_CHECK_TIMEOUT=10s
HEALTH_CHECK_RETRIES=3
HEALTH_CHECK_START_PERIOD=60s
# ============ IoT Gateway 特有配置 ============
# 注意: iot-gateway 不使用 Nacos所有配置通过环境变量管理
# 消息总线类型
IOT_MESSAGE_BUS_TYPE=redis
# 设备 RPC 配置(调用 iot-server 微服务)
IOT_RPC_URL=http://127.0.0.1:48091
IOT_RPC_CONNECT_TIMEOUT=30s
IOT_RPC_READ_TIMEOUT=30s
# 设备 Token 配置生产环境必须修改为强密钥至少32位
IOT_TOKEN_SECRET=viewshIotGatewayTokenSecret123456789
IOT_TOKEN_EXPIRATION=7d
# HTTP 协议配置
IOT_HTTP_ENABLED=true
IOT_HTTP_PORT=8092
# MQTT 协议配置
IOT_MQTT_ENABLED=true
IOT_MQTT_PORT=1883
IOT_MQTT_MAX_MESSAGE_SIZE=8192
IOT_MQTT_CONNECT_TIMEOUT=60
IOT_MQTT_SSL_ENABLED=false
# TCP 协议配置
IOT_TCP_ENABLED=false
IOT_TCP_PORT=8091
IOT_TCP_KEEPALIVE_TIMEOUT=30000
IOT_TCP_MAX_CONNECTIONS=1000
IOT_TCP_SSL_ENABLED=false
# EMQX 协议配置(外部 MQTT Broker
IOT_EMQX_ENABLED=false
IOT_EMQX_HTTP_PORT=8090
IOT_EMQX_MQTT_HOST=127.0.0.1
IOT_EMQX_MQTT_PORT=1883
IOT_EMQX_MQTT_USERNAME=admin
IOT_EMQX_MQTT_PASSWORD=public
IOT_EMQX_MQTT_CLIENT_ID=iot-gateway-mqtt
IOT_EMQX_MQTT_SSL=false
IOT_EMQX_TRUST_ALL=false
IOT_EMQX_WILL_ENABLED=true
# IoT Gateway 日志配置
LOG_LEVEL_IOT_GATEWAY=INFO
LOG_LEVEL_EMQX=INFO
LOG_LEVEL_HTTP=INFO
LOG_LEVEL_MQTT=INFO
# ============ 资源限制说明 ============
# 当前配置预计总内存占用:
# - 应用服务: ~4.5GB (Docker 容器)

View File

@@ -151,10 +151,61 @@ services:
environment:
JAVA_OPTS: "-Xms${IOT_GATEWAY_JVM_XMS} -Xmx${IOT_GATEWAY_JVM_XMX} ${JVM_COMMON_OPTS}"
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
# Nacos 配置
NACOS_SERVER_ADDR: ${NACOS_HOST}:${NACOS_PORT}
NACOS_USERNAME: ${NACOS_USERNAME}
NACOS_PASSWORD: ${NACOS_PASSWORD}
NACOS_NAMESPACE: ${NACOS_NAMESPACE}
NACOS_GROUP: DEFAULT_GROUP
# Redis 配置
REDIS_HOST: ${REDIS_HOST}
REDIS_PORT: ${REDIS_PORT}
REDIS_PASSWORD: ${REDIS_PASSWORD}
REDIS_DATABASE: ${REDIS_DATABASE}
REDIS_TIMEOUT: 30000ms
# RocketMQ 配置
ROCKETMQ_NAMESRV_ADDR: ${ROCKETMQ_NAMESRV_HOST}:${ROCKETMQ_NAMESRV_PORT}
# IoT 消息总线配置
IOT_MESSAGE_BUS_TYPE: ${IOT_MESSAGE_BUS_TYPE}
# 设备 RPC 配置
IOT_RPC_URL: ${IOT_RPC_URL}
IOT_RPC_CONNECT_TIMEOUT: ${IOT_RPC_CONNECT_TIMEOUT}
IOT_RPC_READ_TIMEOUT: ${IOT_RPC_READ_TIMEOUT}
# 设备 Token 配置
IOT_TOKEN_SECRET: ${IOT_TOKEN_SECRET}
IOT_TOKEN_EXPIRATION: ${IOT_TOKEN_EXPIRATION}
# HTTP 协议配置
IOT_HTTP_ENABLED: ${IOT_HTTP_ENABLED}
IOT_HTTP_PORT: ${IOT_HTTP_PORT}
# MQTT 协议配置
IOT_MQTT_ENABLED: ${IOT_MQTT_ENABLED}
IOT_MQTT_PORT: ${IOT_MQTT_PORT}
IOT_MQTT_MAX_MESSAGE_SIZE: ${IOT_MQTT_MAX_MESSAGE_SIZE}
IOT_MQTT_CONNECT_TIMEOUT: ${IOT_MQTT_CONNECT_TIMEOUT}
IOT_MQTT_SSL_ENABLED: ${IOT_MQTT_SSL_ENABLED}
# TCP 协议配置
IOT_TCP_ENABLED: ${IOT_TCP_ENABLED}
IOT_TCP_PORT: ${IOT_TCP_PORT}
IOT_TCP_KEEPALIVE_TIMEOUT: ${IOT_TCP_KEEPALIVE_TIMEOUT}
IOT_TCP_MAX_CONNECTIONS: ${IOT_TCP_MAX_CONNECTIONS}
IOT_TCP_SSL_ENABLED: ${IOT_TCP_SSL_ENABLED}
# EMQX 协议配置
IOT_EMQX_ENABLED: ${IOT_EMQX_ENABLED}
IOT_EMQX_HTTP_PORT: ${IOT_EMQX_HTTP_PORT}
IOT_EMQX_MQTT_HOST: ${IOT_EMQX_MQTT_HOST}
IOT_EMQX_MQTT_PORT: ${IOT_EMQX_MQTT_PORT}
IOT_EMQX_MQTT_USERNAME: ${IOT_EMQX_MQTT_USERNAME}
IOT_EMQX_MQTT_PASSWORD: ${IOT_EMQX_MQTT_PASSWORD}
IOT_EMQX_MQTT_CLIENT_ID: ${IOT_EMQX_MQTT_CLIENT_ID}
IOT_EMQX_MQTT_SSL: ${IOT_EMQX_MQTT_SSL}
IOT_EMQX_TRUST_ALL: ${IOT_EMQX_TRUST_ALL}
IOT_EMQX_WILL_ENABLED: ${IOT_EMQX_WILL_ENABLED}
# 日志配置
LOG_FILE_PATH: /app/logs
LOG_LEVEL_IOT_GATEWAY: ${LOG_LEVEL_IOT_GATEWAY}
LOG_LEVEL_EMQX: ${LOG_LEVEL_EMQX}
LOG_LEVEL_HTTP: ${LOG_LEVEL_HTTP}
LOG_LEVEL_MQTT: ${LOG_LEVEL_MQTT}
TZ: ${TZ}
volumes:
- app-logs:/app/logs

View File

@@ -1,5 +1,24 @@
--- #################### 注册中心 + 配置中心相关配置 ####################
--- #################### 注册中心 + 配置中心相关配置 ####################
spring:
cloud:
nacos:
server-addr: ${NACOS_SERVER_ADDR:127.0.0.1:8848}
username: ${NACOS_USERNAME:}
password: ${NACOS_PASSWORD:}
discovery:
namespace: ${NACOS_NAMESPACE:}
group: ${NACOS_GROUP:DEFAULT_GROUP}
metadata:
version: 1.0.0
config:
namespace: ${NACOS_NAMESPACE:}
group: ${NACOS_GROUP:DEFAULT_GROUP}
--- #################### 应用配置 ####################
spring:
application:
name: iot-gateway-server

View File

@@ -4,6 +4,11 @@ spring:
profiles:
active: local # 默认激活本地开发环境
config:
import:
- optional:classpath:application-${spring.profiles.active}.yaml # 加载【本地】配置
- optional:nacos:${spring.application.name}-${spring.profiles.active}.yaml # 加载【Nacos】的配置
# Redis 配置
data:
redis: