Files
aiot-platform-cloud/viewsh-module-iot/viewsh-module-iot-gateway/src/main/resources/application.yaml

134 lines
5.2 KiB
YAML
Raw Normal View History

2025-12-31 11:48:19 +08:00
spring:
application:
name: iot-gateway-server
profiles:
active: local # 默认激活本地开发环境
config:
import:
- optional:classpath:application-${spring.profiles.active}.yaml # 加载【本地】配置
# - optional:nacos:${spring.application.name}-${spring.profiles.active}.yaml # 加载【Nacos】的配置
2025-12-31 11:48:19 +08:00
# Redis 配置
data:
redis:
host: ${REDIS_HOST:127.0.0.1} # Redis 服务器地址
port: ${REDIS_PORT:6379} # Redis 服务器端口
database: ${REDIS_DATABASE:0} # Redis 数据库索引
2025-12-31 15:53:40 +08:00
# password: ${REDIS_PASSWORD:9kHXcZ1ojFsD} # Redis 密码
2025-12-31 11:48:19 +08:00
timeout: 30000ms # 连接超时时间
--- #################### 消息队列相关 ####################
# rocketmq 配置项,对应 RocketMQProperties 配置类
rocketmq:
name-server: ${ROCKETMQ_NAMESERVER:124.221.55.225:9876} # RocketMQ Namesrv
2025-12-31 11:48:19 +08:00
# Producer 配置项
producer:
group: ${spring.application.name}_PRODUCER # 生产者分组
--- #################### IoT 网关相关配置 ####################
viewsh:
iot:
# 消息总线配置
message-bus:
type: redis # 消息总线的类型
# 网关配置
gateway:
# 设备 RPC 配置
rpc:
url: ${VIEWSH_IOT_GATEWAY_RPC_URL:http://127.0.0.1:48091} # 主程序 API 地址
2025-12-31 11:48:19 +08:00
connect-timeout: 30s
read-timeout: 30s
# 设备 Token 配置
token:
secret: viewshIotGatewayTokenSecret123456789 # Token 密钥至少32位
expiration: 7d
# 协议配置
protocol:
# ====================================
# 针对引入的 HTTP 组件的配置
# ====================================
http:
enabled: true
server-port: 8092
# ====================================
# 针对引入的 EMQX 组件的配置
# ====================================
emqx:
enabled: false
http-port: 8090 # MQTT HTTP 服务端口
mqtt-host: ${EMQX_HOST:124.221.55.225} # MQTT Broker 地址
2025-12-31 11:48:19 +08:00
mqtt-port: 1883 # MQTT Broker 端口
mqtt-username: admin # MQTT 用户名
mqtt-password: public # MQTT 密码
mqtt-client-id: iot-gateway-mqtt # MQTT 客户端 ID
mqtt-ssl: false # 是否开启 SSL
mqtt-topics:
- "/sys/#" # 系统主题
clean-session: true # 是否启用 Clean Session (默认: true)
keep-alive-interval-seconds: 60 # 心跳间隔,单位秒 (默认: 60)
max-inflight-queue: 10000 # 最大飞行消息队列,单位:条
connect-timeout-seconds: 10 # 连接超时,单位:秒
# 是否信任所有 SSL 证书 (默认: false)。警告:生产环境必须为 false
# 仅在开发环境或内网测试时,如果使用了自签名证书,可以临时设置为 true
trust-all: true # 在 dev 环境可以设为 true
# 遗嘱消息配置 (用于网关异常下线时通知其他系统)
will:
enabled: true # 生产环境强烈建议开启
topic: "gateway/status/${viewsh.iot.gateway.emqx.mqtt-client-id}" # 遗嘱消息主题
payload: "offline" # 遗嘱消息负载
qos: 1 # 遗嘱消息 QoS
retain: true # 遗嘱消息是否保留
# 高级 SSL/TLS 配置 (当 trust-all: false 且 mqtt-ssl: true 时生效)
ssl-options:
key-store-path: "classpath:certs/client.jks" # 客户端证书库路径
key-store-password: "your-keystore-password" # 客户端证书库密码
trust-store-path: "classpath:certs/trust.jks" # 信任的 CA 证书库路径
trust-store-password: "your-truststore-password" # 信任的 CA 证书库密码
# ====================================
# 针对引入的 TCP 组件的配置
# ====================================
tcp:
enabled: true
2025-12-31 11:48:19 +08:00
port: 8091
keep-alive-timeout-ms: 30000
max-connections: 1000
ssl-enabled: false
ssl-cert-path: "classpath:certs/client.jks"
ssl-key-path: "classpath:certs/client.jks"
# ====================================
# 针对引入的 MQTT 组件的配置
# ====================================
mqtt:
enabled: true
port: 1883
max-message-size: 8192
connect-timeout-seconds: 60
ssl-enabled: false
--- #################### 日志相关配置 ####################
# 基础日志配置
logging:
file:
name: ${user.home}/logs/${spring.application.name}.log # 日志文件名,全路径
level:
# 应用基础日志级别
com.viewsh.module.iot.gateway: INFO
org.springframework.boot: INFO
# RocketMQ 日志
org.apache.rocketmq: WARN
# MQTT 客户端日志
# io.vertx.mqtt: DEBUG
# 开发环境详细日志
com.viewsh.module.iot.gateway.protocol.emqx: DEBUG
com.viewsh.module.iot.gateway.protocol.http: DEBUG
com.viewsh.module.iot.gateway.protocol.mqtt: DEBUG
# 根日志级别
root: INFO
debug: false