From 748b09d35599cd2ec7053ba18504aed090db1784 Mon Sep 17 00:00:00 2001 From: lzh Date: Fri, 13 Feb 2026 15:50:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(rocketmq):=20=E6=B7=BB=E5=8A=A0=E8=85=BE?= =?UTF-8?q?=E8=AE=AF=E4=BA=91TDMQ=20ACL=E8=AE=A4=E8=AF=81=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E8=A7=A3=E5=86=B3=E8=BF=9E=E6=8E=A5=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复RocketMQ发送消息报"No accessKey is configured"错误, 统一各模块环境变量名为ROCKETMQ_NAMESRV_ADDR。 Co-Authored-By: Claude Opus 4.6 --- .env.example | 380 +++++++++--------- docker-compose.core.yml | 13 +- .../src/main/resources/application-prod.yaml | 3 + .../src/main/resources/application-prod.yaml | 3 + .../src/main/resources/application-prod.yaml | 5 +- .../src/main/resources/application-prod.yaml | 3 + 6 files changed, 212 insertions(+), 195 deletions(-) diff --git a/.env.example b/.env.example index 9e69bf6..c03ce7d 100644 --- a/.env.example +++ b/.env.example @@ -1,190 +1,190 @@ -# ============================================ -# 环境变量配置文件 -# 复制此文件为 .env 并根据实际环境修改 -# ============================================ - -# ============ 通用配置 ============ -COMPOSE_PROJECT_NAME=aiot-platform -TZ=Asia/Shanghai - -# ============ Docker Registry ============ -REGISTRY_HOST=localhost:5000 -IMAGE_TAG=latest - -# ============ 数据库配置 ============ -# 1Panel 安装的 MySQL 配置 -MYSQL_HOST=127.0.0.1 -MYSQL_PORT=3306 -MYSQL_ROOT_PASSWORD=your_1panel_mysql_root_password -MYSQL_DATABASE=aiot_platform -MYSQL_USER=aiot -MYSQL_PASSWORD=aiot_password - -# MySQL 内存配置(1Panel 管理,此处配置不生效) -MYSQL_MEMORY_LIMIT=2048m -MYSQL_MEMORY_RESERVATION=1024m - -# ============ Redis 配置 ============ -# 1Panel 安装的 Redis 配置 -REDIS_HOST=127.0.0.1 -REDIS_PORT=6379 -REDIS_PASSWORD=your_1panel_redis_password -REDIS_DATABASE=0 - -# Redis 内存配置(1Panel 管理,此处配置不生效) -REDIS_MEMORY_LIMIT=512m -REDIS_MEMORY_RESERVATION=256m - -# ============ Nacos 配置 ============ -# 1Panel 安装的 Nacos 配置 -NACOS_HOST=127.0.0.1 -NACOS_PORT=8848 -NACOS_NAMESPACE=aiot-platform -NACOS_USERNAME=nacos -NACOS_PASSWORD=nacos - -# Nacos 内存配置(1Panel 管理,此处配置不生效) -NACOS_MEMORY_LIMIT=1024m -NACOS_MEMORY_RESERVATION=768m - -# ============ RocketMQ 配置 ============ -# 1Panel 安装的 RocketMQ 配置 -ROCKETMQ_NAMESRV_HOST=127.0.0.1 -ROCKETMQ_NAMESRV_PORT=9876 -ROCKETMQ_BROKER_HOST=127.0.0.1 - -# RocketMQ 内存配置(1Panel 管理,此处配置不生效) -ROCKETMQ_NAMESRV_MEMORY_LIMIT=512m -ROCKETMQ_BROKER_MEMORY_LIMIT=1536m - -# ============ 应用服务内存配置 ============ -# 格式: 服务名_MEMORY_LIMIT / 服务名_JVM_XMS / 服务名_JVM_XMX - -# API 网关(标准配置) -GATEWAY_MEMORY_LIMIT=768m -GATEWAY_JVM_XMS=512m -GATEWAY_JVM_XMX=768m - -# 系统服务(标准配置) -SYSTEM_MEMORY_LIMIT=768m -SYSTEM_JVM_XMS=512m -SYSTEM_JVM_XMX=768m - -# 基础设施服务(标准配置) -INFRA_MEMORY_LIMIT=768m -INFRA_JVM_XMS=512m -INFRA_JVM_XMX=768m - -# IoT 业务服务(核心服务,较大内存) -IOT_SERVER_MEMORY_LIMIT=1024m -IOT_SERVER_JVM_XMS=768m -IOT_SERVER_JVM_XMX=1024m - -# IoT 设备网关(核心服务,较大内存) -IOT_GATEWAY_MEMORY_LIMIT=1024m -IOT_GATEWAY_JVM_XMS=768m -IOT_GATEWAY_JVM_XMX=1024m - -# 运维服务(轻量配置) -OPS_MEMORY_LIMIT=384m -OPS_JVM_XMS=256m -OPS_JVM_XMX=384m - -# ============ JVM 通用参数 ============ -JVM_COMMON_OPTS=-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+HeapDumpOnOutOfMemoryError - -# ============ Spring Boot 配置 ============ -SPRING_PROFILES_ACTIVE=prod - -# ============ 日志配置 ============ -LOG_LEVEL=INFO -LOG_PATH=/app/logs - -# ============ 端口映射 ============ -GATEWAY_PORT=48080 -SYSTEM_PORT=48081 -INFRA_PORT=48082 -IOT_SERVER_PORT=48083 -IOT_GATEWAY_PORT=48084 -OPS_PORT=48085 - -# ============ 健康检查配置 ============ -HEALTH_CHECK_INTERVAL=30s -HEALTH_CHECK_TIMEOUT=10s -HEALTH_CHECK_RETRIES=5 -HEALTH_CHECK_START_PERIOD=90s - -# ============ XXL-JOB 配置(暂时注释)============ -# 如需部署 XXL-JOB Admin,取消以下注释 -# XXL_JOB_ADMIN_ADDRESSES=http://127.0.0.1:9090/xxl-job-admin -# XXL_JOB_ACCESS_TOKEN=default_token - -# ============ 微信配置(如果需要微信支付功能) ============ -# 如果不使用微信支付,保持这些为空或注释掉 -# WX_MP_APP_ID= -# WX_MP_SECRET= -# WX_MP_TOKEN= -# WX_MP_AES_KEY= - -# ============ 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 容器) -# - 中间件: 由 1Panel 管理(不在 Docker Compose 中) -# - 总计: ~4.5GB (仅应用服务,为系统预留 11.5GB) -# -# 调整建议: -# 1. 核心服务(IOT_SERVER, IOT_GATEWAY)已配置较大内存 (1GB) -# 2. 如需增加某服务内存,修改对应的 MEMORY_LIMIT 和 JVM_XMX -# 3. 中间件内存配置请在 1Panel 面板中调整 -# 4. 确保所有服务总内存不超过 14GB,为系统预留至少 2GB +# ============================================ +# 环境变量配置文件 +# 复制此文件为 .env 并根据实际环境修改 +# ============================================ + +# ============ 通用配置 ============ +COMPOSE_PROJECT_NAME=aiot-platform +TZ=Asia/Shanghai + +# ============ Docker Registry ============ +REGISTRY_HOST=localhost:5000 +IMAGE_TAG=latest + +# ============ 数据库配置 ============ +# 1Panel 安装的 MySQL 配置 +MYSQL_HOST=127.0.0.1 +MYSQL_PORT=3306 +MYSQL_ROOT_PASSWORD=your_1panel_mysql_root_password +MYSQL_DATABASE=aiot_platform +MYSQL_USER=aiot +MYSQL_PASSWORD=aiot_password + +# MySQL 内存配置(1Panel 管理,此处配置不生效) +MYSQL_MEMORY_LIMIT=2048m +MYSQL_MEMORY_RESERVATION=1024m + +# ============ Redis 配置 ============ +# 1Panel 安装的 Redis 配置 +REDIS_HOST=127.0.0.1 +REDIS_PORT=6379 +REDIS_PASSWORD=your_1panel_redis_password +REDIS_DATABASE=0 + +# Redis 内存配置(1Panel 管理,此处配置不生效) +REDIS_MEMORY_LIMIT=512m +REDIS_MEMORY_RESERVATION=256m + +# ============ Nacos 配置 ============ +# 1Panel 安装的 Nacos 配置 +NACOS_HOST=127.0.0.1 +NACOS_PORT=8848 +NACOS_NAMESPACE=aiot-platform +NACOS_USERNAME=nacos +NACOS_PASSWORD=nacos + +# Nacos 内存配置(1Panel 管理,此处配置不生效) +NACOS_MEMORY_LIMIT=1024m +NACOS_MEMORY_RESERVATION=768m + +# ============ RocketMQ 配置 ============ +# 腾讯云 TDMQ RocketMQ 配置 +ROCKETMQ_NAMESRV_ADDR=rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080 +ROCKETMQ_ACCESS_KEY=your_tdmq_role_name +ROCKETMQ_SECRET_KEY=your_tdmq_role_token + +# RocketMQ 内存配置(1Panel 管理,此处配置不生效) +ROCKETMQ_NAMESRV_MEMORY_LIMIT=512m +ROCKETMQ_BROKER_MEMORY_LIMIT=1536m + +# ============ 应用服务内存配置 ============ +# 格式: 服务名_MEMORY_LIMIT / 服务名_JVM_XMS / 服务名_JVM_XMX + +# API 网关(标准配置) +GATEWAY_MEMORY_LIMIT=768m +GATEWAY_JVM_XMS=512m +GATEWAY_JVM_XMX=768m + +# 系统服务(标准配置) +SYSTEM_MEMORY_LIMIT=768m +SYSTEM_JVM_XMS=512m +SYSTEM_JVM_XMX=768m + +# 基础设施服务(标准配置) +INFRA_MEMORY_LIMIT=768m +INFRA_JVM_XMS=512m +INFRA_JVM_XMX=768m + +# IoT 业务服务(核心服务,较大内存) +IOT_SERVER_MEMORY_LIMIT=1024m +IOT_SERVER_JVM_XMS=768m +IOT_SERVER_JVM_XMX=1024m + +# IoT 设备网关(核心服务,较大内存) +IOT_GATEWAY_MEMORY_LIMIT=1024m +IOT_GATEWAY_JVM_XMS=768m +IOT_GATEWAY_JVM_XMX=1024m + +# 运维服务(轻量配置) +OPS_MEMORY_LIMIT=384m +OPS_JVM_XMS=256m +OPS_JVM_XMX=384m + +# ============ JVM 通用参数 ============ +JVM_COMMON_OPTS=-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+HeapDumpOnOutOfMemoryError + +# ============ Spring Boot 配置 ============ +SPRING_PROFILES_ACTIVE=prod + +# ============ 日志配置 ============ +LOG_LEVEL=INFO +LOG_PATH=/app/logs + +# ============ 端口映射 ============ +GATEWAY_PORT=48080 +SYSTEM_PORT=48081 +INFRA_PORT=48082 +IOT_SERVER_PORT=48083 +IOT_GATEWAY_PORT=48084 +OPS_PORT=48085 + +# ============ 健康检查配置 ============ +HEALTH_CHECK_INTERVAL=30s +HEALTH_CHECK_TIMEOUT=10s +HEALTH_CHECK_RETRIES=5 +HEALTH_CHECK_START_PERIOD=90s + +# ============ XXL-JOB 配置(暂时注释)============ +# 如需部署 XXL-JOB Admin,取消以下注释 +# XXL_JOB_ADMIN_ADDRESSES=http://127.0.0.1:9090/xxl-job-admin +# XXL_JOB_ACCESS_TOKEN=default_token + +# ============ 微信配置(如果需要微信支付功能) ============ +# 如果不使用微信支付,保持这些为空或注释掉 +# WX_MP_APP_ID= +# WX_MP_SECRET= +# WX_MP_TOKEN= +# WX_MP_AES_KEY= + +# ============ 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 容器) +# - 中间件: 由 1Panel 管理(不在 Docker Compose 中) +# - 总计: ~4.5GB (仅应用服务,为系统预留 11.5GB) +# +# 调整建议: +# 1. 核心服务(IOT_SERVER, IOT_GATEWAY)已配置较大内存 (1GB) +# 2. 如需增加某服务内存,修改对应的 MEMORY_LIMIT 和 JVM_XMX +# 3. 中间件内存配置请在 1Panel 面板中调整 +# 4. 确保所有服务总内存不超过 14GB,为系统预留至少 2GB diff --git a/docker-compose.core.yml b/docker-compose.core.yml index 51d5c99..e45457a 100644 --- a/docker-compose.core.yml +++ b/docker-compose.core.yml @@ -165,7 +165,9 @@ services: SPRING_DATA_REDIS_HOST: 172.17.16.13 SPRING_DATA_REDIS_PASSWORD: "HkVZkVnn1" - ROCKETMQ_NAME_SERVER: rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080 + ROCKETMQ_NAMESRV_ADDR: rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080 + ROCKETMQ_ACCESS_KEY: ak4wd73bxpv55331e7c5b80 + ROCKETMQ_SECRET_KEY: sk82108944bc0997f7 # TDengine TDENGINE_HOST: 172.17.16.7 @@ -210,8 +212,9 @@ services: SPRING_DATA_REDIS_HOST: 172.17.16.13 SPRING_DATA_REDIS_PASSWORD: "HkVZkVnn1" - ROCKETMQ_NAME_SERVER: rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080 - # 添加这一行 + ROCKETMQ_NAMESRV_ADDR: rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080 + ROCKETMQ_ACCESS_KEY: ak4wd73bxpv55331e7c5b80 + ROCKETMQ_SECRET_KEY: sk82108944bc0997f7 VIEWSH_IOT_GATEWAY_RPC_URL: "http://aiot-iot-server:48091" volumes: - app-logs:/app/logs @@ -247,7 +250,9 @@ services: SPRING_DATA_REDIS_HOST: 172.17.16.13 SPRING_DATA_REDIS_PASSWORD: "HkVZkVnn1" - ROCKETMQ_NAME_SERVER: rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080 + ROCKETMQ_NAMESRV_ADDR: rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080 + ROCKETMQ_ACCESS_KEY: ak4wd73bxpv55331e7c5b80 + ROCKETMQ_SECRET_KEY: sk82108944bc0997f7 # XXL-Job 调度中心地址 XXL_JOB_ADMIN_ADDRESSES: http://172.17.16.7:19090/xxl-job-admin diff --git a/viewsh-module-iot/viewsh-module-iot-gateway/src/main/resources/application-prod.yaml b/viewsh-module-iot/viewsh-module-iot-gateway/src/main/resources/application-prod.yaml index 7e6b0b8..81b2d67 100644 --- a/viewsh-module-iot/viewsh-module-iot-gateway/src/main/resources/application-prod.yaml +++ b/viewsh-module-iot/viewsh-module-iot-gateway/src/main/resources/application-prod.yaml @@ -20,6 +20,9 @@ spring: # rocketmq 配置项,对应 RocketMQProperties 配置类 rocketmq: name-server: ${ROCKETMQ_NAMESRV_ADDR:rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080} + # 腾讯云 TDMQ ACL 认证 + access-key: ${ROCKETMQ_ACCESS_KEY:} + secret-key: ${ROCKETMQ_SECRET_KEY:} # Producer 配置项 producer: group: ${spring.application.name}_PRODUCER diff --git a/viewsh-module-iot/viewsh-module-iot-server/src/main/resources/application-prod.yaml b/viewsh-module-iot/viewsh-module-iot-server/src/main/resources/application-prod.yaml index 587ecb0..e5625d6 100644 --- a/viewsh-module-iot/viewsh-module-iot-server/src/main/resources/application-prod.yaml +++ b/viewsh-module-iot/viewsh-module-iot-server/src/main/resources/application-prod.yaml @@ -89,6 +89,9 @@ spring: rocketmq: name-server: ${ROCKETMQ_NAMESRV_ADDR:rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080} + # 腾讯云 TDMQ ACL 认证 + access-key: ${ROCKETMQ_ACCESS_KEY:} + secret-key: ${ROCKETMQ_SECRET_KEY:} spring: # 禁用 RabbitMQ 自动配置(如果不需要 RabbitMQ,避免启动时连接失败) diff --git a/viewsh-module-ops/viewsh-module-ops-server/src/main/resources/application-prod.yaml b/viewsh-module-ops/viewsh-module-ops-server/src/main/resources/application-prod.yaml index 1e440c7..b968386 100644 --- a/viewsh-module-ops/viewsh-module-ops-server/src/main/resources/application-prod.yaml +++ b/viewsh-module-ops/viewsh-module-ops-server/src/main/resources/application-prod.yaml @@ -79,7 +79,10 @@ spring: # rocketmq 配置项,对应 RocketMQProperties 配置类 rocketmq: - name-server: ${ROCKETMQ_NAME_SERVER:rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080} # RocketMQ Namesrv + name-server: ${ROCKETMQ_NAMESRV_ADDR:rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080} # RocketMQ Namesrv + # 腾讯云 TDMQ ACL 认证 + access-key: ${ROCKETMQ_ACCESS_KEY:} + secret-key: ${ROCKETMQ_SECRET_KEY:} spring: # RabbitMQ 配置项,对应 RabbitProperties 配置类 diff --git a/viewsh-module-system/viewsh-module-system-server/src/main/resources/application-prod.yaml b/viewsh-module-system/viewsh-module-system-server/src/main/resources/application-prod.yaml index a168813..5be9e92 100644 --- a/viewsh-module-system/viewsh-module-system-server/src/main/resources/application-prod.yaml +++ b/viewsh-module-system/viewsh-module-system-server/src/main/resources/application-prod.yaml @@ -85,6 +85,9 @@ spring: # rocketmq 配置项 rocketmq: name-server: ${ROCKETMQ_NAMESRV_ADDR:rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080} + # 腾讯云 TDMQ ACL 认证 + access-key: ${ROCKETMQ_ACCESS_KEY:} + secret-key: ${ROCKETMQ_SECRET_KEY:} spring: # RabbitMQ 配置项(可选)