spring:
|
application:
|
name: iot-gateway-server
|
profiles:
|
active: local # 默认激活本地开发环境
|
|
# Redis 配置
|
data:
|
redis:
|
host: 127.0.0.1 # Redis 服务器地址
|
port: 6379 # Redis 服务器端口
|
database: 0 # Redis 数据库索引
|
# password: # Redis 密码,如果有的话
|
timeout: 30000ms # 连接超时时间
|
|
--- #################### 消息队列相关 ####################
|
|
# rocketmq 配置项,对应 RocketMQProperties 配置类
|
rocketmq:
|
name-server: 127.0.0.1:9876 # RocketMQ Namesrv
|
# Producer 配置项
|
producer:
|
group: ${spring.application.name}_PRODUCER # 生产者分组
|
|
--- #################### IoT 网关相关配置 ####################
|
|
yudao:
|
iot:
|
# 消息总线配置
|
message-bus:
|
type: redis # 消息总线的类型
|
|
# 网关配置
|
gateway:
|
# 设备 RPC 配置
|
rpc:
|
url: http://127.0.0.1:48080 # 主程序 API 地址
|
connect-timeout: 30s
|
read-timeout: 30s
|
# 设备 Token 配置
|
token:
|
secret: yudaoIotGatewayTokenSecret123456789 # Token 密钥,至少32位
|
expiration: 7d
|
|
# 协议实例列表
|
protocols:
|
# ====================================
|
# 针对引入的 HTTP 组件的配置
|
# ====================================
|
- id: http-json
|
protocol: http
|
port: 8092
|
enabled: false
|
# ====================================
|
# 针对引入的 TCP 组件的配置
|
# ====================================
|
- id: tcp-json
|
enabled: false
|
protocol: tcp
|
port: 8091
|
serialize: json
|
tcp:
|
max-connections: 1000
|
keep-alive-timeout-ms: 30000
|
codec:
|
type: delimiter # 拆包类型:length_field / delimiter / fixed_length
|
delimiter: "\\n" # 分隔符(支持转义:\\n=换行, \\r=回车, \\t=制表符)
|
# type: length_field # 拆包类型:length_field / delimiter / fixed_length
|
# length-field-offset: 0 # 长度字段偏移量
|
# length-field-length: 4 # 长度字段长度
|
# length-adjustment: 0 # 长度调整值
|
# initial-bytes-to-strip: 4 # 初始跳过的字节数
|
# type: fixed_length # 拆包类型:length_field / delimiter / fixed_length
|
# fixed-length: 256 # 固定长度
|
# ====================================
|
# 针对引入的 UDP 组件的配置
|
# ====================================
|
- id: udp-json
|
enabled: false
|
protocol: udp
|
port: 8093
|
serialize: json
|
udp:
|
max-sessions: 1000 # 最大会话数
|
session-timeout-ms: 60000 # 会话超时时间(毫秒),基于 Guava Cache 自动过期
|
receive-buffer-size: 65536 # 接收缓冲区大小(字节)
|
send-buffer-size: 65536 # 发送缓冲区大小(字节)
|
# ====================================
|
# 针对引入的 WebSocket 组件的配置
|
# ====================================
|
- id: websocket-json
|
enabled: false
|
protocol: websocket
|
port: 8094
|
serialize: json
|
websocket:
|
path: /ws
|
max-message-size: 65536 # 最大消息大小(字节,默认 64KB)
|
max-frame-size: 65536 # 最大帧大小(字节,默认 64KB)
|
idle-timeout-seconds: 60 # 空闲超时时间(秒,默认 60)
|
# ====================================
|
# 针对引入的 CoAP 组件的配置
|
# ====================================
|
- id: coap-json
|
enabled: false
|
protocol: coap
|
port: 5683
|
coap:
|
max-message-size: 1024 # 最大消息大小(字节)
|
ack-timeout-ms: 2000 # ACK 超时时间(毫秒)
|
max-retransmit: 4 # 最大重传次数
|
# ====================================
|
# 针对引入的 MQTT 组件的配置
|
# ====================================
|
- id: mqtt-json
|
enabled: false
|
protocol: mqtt
|
port: 1883
|
serialize: json
|
mqtt:
|
max-message-size: 8192 # 最大消息大小(字节)
|
connect-timeout-seconds: 60 # 连接超时时间(秒)
|
# ====================================
|
# 针对引入的 EMQX 组件的配置
|
# ====================================
|
- id: emqx-1
|
enabled: false
|
protocol: emqx
|
port: 8090 # EMQX HTTP Hook 端口(/mqtt/auth、/mqtt/event)
|
emqx:
|
mqtt-host: 127.0.0.1 # MQTT Broker 地址
|
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/#" # 系统主题
|
mqtt-qos: 1 # 默认 QoS
|
clean-session: true # 是否启用 Clean Session (默认: true)
|
keep-alive-interval-seconds: 60 # 心跳间隔,单位秒 (默认: 60)
|
max-inflight-queue: 10000 # 最大飞行消息队列,单位:条
|
connect-timeout-seconds: 10 # 连接超时,单位:秒
|
reconnect-delay-ms: 5000 # 重连延迟,单位:毫秒
|
# 是否信任所有 SSL 证书 (默认: false)。警告:生产环境必须为 false!
|
# 仅在开发环境或内网测试时,如果使用了自签名证书,可以临时设置为 true
|
trust-all: true # 在 dev 环境可以设为 true
|
# EMQX HTTP Hook 回调网关的 HTTPS 配置(可选)
|
http:
|
ssl-enabled: false
|
# ssl-cert-path: "path/to/server.crt"
|
# ssl-key-path: "path/to/server.key"
|
# 遗嘱消息配置 (用于网关异常下线时通知其他系统)
|
will:
|
enabled: true # 生产环境强烈建议开启
|
topic: "gateway/status/iot-gateway-mqtt" # 遗嘱消息主题
|
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 证书库密码
|
# ====================================
|
# 针对引入的 Modbus TCP Client 组件的配置
|
# ====================================
|
- id: modbus-tcp-client-1
|
enabled: false
|
protocol: modbus_tcp_client
|
port: 502
|
modbus-tcp-client:
|
config-refresh-interval: 30 # 配置刷新间隔(秒)
|
# ====================================
|
# 针对引入的 Modbus TCP Server 组件的配置
|
# ====================================
|
- id: modbus-tcp-server-1
|
enabled: false
|
protocol: modbus_tcp_server
|
port: 503
|
modbus-tcp-server:
|
config-refresh-interval: 30 # 配置刷新间隔(秒)
|
custom-function-code: 65 # 自定义功能码(用于认证等扩展交互)
|
request-timeout: 5000 # Pending Request 超时时间(毫秒)
|
request-cleanup-interval: 10000 # Pending Request 清理间隔(毫秒)
|
|
--- #################### 日志相关配置 ####################
|
|
# 基础日志配置
|
logging:
|
file:
|
name: ${user.home}/logs/${spring.application.name}.log # 日志文件名,全路径
|
level:
|
# 应用基础日志级别
|
cn.iocoder.yudao.module.iot.gateway: INFO
|
org.springframework.boot: INFO
|
# RocketMQ 日志
|
org.apache.rocketmq: WARN
|
# MQTT 客户端日志
|
# io.vertx.mqtt: DEBUG
|
# 开发环境详细日志
|
cn.iocoder.yudao.module.iot.gateway.protocol.emqx: DEBUG
|
cn.iocoder.yudao.module.iot.gateway.protocol.http: DEBUG
|
cn.iocoder.yudao.module.iot.gateway.protocol.mqtt: DEBUG
|
cn.iocoder.yudao.module.iot.gateway.protocol.coap: DEBUG
|
cn.iocoder.yudao.module.iot.gateway.protocol.websocket: DEBUG
|
cn.iocoder.yudao.module.iot.gateway.protocol.modbus: DEBUG
|
# 根日志级别
|
root: INFO
|
|
debug: false
|