跳到主要内容

Gateway MQTT 采集客户端

插件用途​

在中心 Gateway 上通过一个共享 MQTT Broker 连接,采集多个边缘 Gateway 的变量目录、实时值、设备状态和快照。每个边缘节点由唯一 RemoteKey 区分。

首次部署中心、现场和 Broker 的操作顺序见中心与边缘部署全流程。

该插件不是通用 MQTT JSON 采集器。普通自定义 Topic 和载荷请使用MQTT 采集客户端。

选择运行模式​

模式适用网络中心端行为边缘端行为
GatewayMqttCollectClient已有统一 Broker,或各网关都只能主动出站以一个固定 ClientId 连接 Broker,并订阅全部已配置来源多个 MqttClientProducer 连接同一 Broker,并按各自 RemoteKey 发布
GatewayMqttCollectServer中心 Gateway 可以开放 MQTT 入站端口在一个端口监听多个边缘客户端,并按 ClientId、账号和可选证书指纹绑定来源多个 MqttClientProducer 直接连接中心 Gateway

配置前准备​

  1. 为每台边缘 Gateway 分配不会变化的 RemoteKey,仅使用英文字母、数字、连字符或下划线。
  2. 确认中心端和边缘端使用相同的 Topic 根,默认是 TGateway/Gateway。
  3. 在每台边缘 Gateway 的数据转发页面创建 MqttClientProducer,关闭 Retain,并按下文配置变量、数据请求和 RPC Topic。
  4. 需要远程写入时,先确认边缘 Producer、中心采集设备和目标变量三处权限都允许写入。
  5. 根据网络策略按需使用 TLS;Server 模式为每个来源配置独立账号,启用客户端证书时再绑定独立 SHA-256 指纹。

完整数据链路​

GatewayMqttCollectClient 和 GatewayMqttCollectServer 只安装在中心 Gateway,负责接收和采集;边缘 Gateway 的 MQTT 上传继续使用现有数据转发插件 MqttClientProducer,不需要创建第二套 Gateway 专用上传插件。

边缘 Gateway 的采集变量
→ 数据转发组(决定上传范围和触发方式)
→ MqttClientProducer(上传实时值并响应快照、写入请求)
→ 共享 Broker 或中心 Gateway 的 MQTT 监听端口
→ GatewayMqttCollectClient / GatewayMqttCollectServer
→ 中心 Gateway 镜像变量

插件名称中的 Client 和 Server 表示中心采集端的 MQTT 角色,不是数据方向:Client 模式由中心端连接共享 Broker;Server 模式由中心端监听,边缘 MqttClientProducer 主动连接中心端。

配置边缘端 MQTT 上传​

在每台边缘 Gateway 上执行以下操作:

  1. 登录 TGateway Web,进入“开发配置 → 数据转发”。
  2. 新建并启用数据转发组,在组变量范围中加入需要汇聚的变量;组范围未包含的变量不会上传。
  3. 在该组中新建转发目标,插件选择 MqttClientProducer,并启用目标。
  4. 按所选模式配置连接地址,再按当前边缘 Gateway 的 RemoteKey 配置固定 Topic。
  5. 保存后确认目标在线且没有 CacheDB 积压,再到中心采集设备的调试页请求快照和同步变量。

边缘 Gateway 的 MQTT 数据转发目标配置

连接地址对应关系​

中心采集模式边缘 MqttClientProducer 连接地址身份配置
GatewayMqttCollectClient填写共享 Broker 的地址和端口;中心采集端也连接这个 Broker边缘 ClientId 必须唯一,用户名和密码使用 Broker 分配的边缘账号;Broker ACL 应只允许该边缘访问自己的 {TopicRoot}/{RemoteKey}/#
GatewayMqttCollectServer填写中心 Gateway 的地址,以及 GatewayMqttCollectServer 配置的监听端口ClientId 必须等于中心来源配置的 AllowedClientId,用户名和密码也必须与该来源完全一致

不要在边缘端使用 MqttServerProducer:Client 汇聚模式需要双方连接同一个 Broker,Server 汇聚模式需要边缘端作为客户端连接中心监听端口,这两种拓扑都由 MqttClientProducer 发起连接。

固定 Topic 与上传结构​

假设中心采集设备的 Topic 根为 TGateway/Gateway,当前边缘的 RemoteKey 为 edge-01,边缘 MqttClientProducer 应使用以下配置:

边缘端配置项配置值或要求
变量 Topic 模板TGateway/Gateway/edge-01/Variable
数据请求 TopicTGateway/Gateway/edge-01/RpcQuest
RPC 写入 TopicTGateway/Gateway/edge-01/RpcWrite
变量列表上传开启
变量字典上传关闭
变量实体脚本 / 上传模板配置保持为空,不改变当前固定 Payload
JSON 忽略 Null关闭
保留消息关闭;专用采集会拒绝 Retain 消息
过滤离线数据关闭,使全量快照包含离线变量及其元数据
QoS 等级边缘端与中心来源配置保持一致;推荐 AtLeastOnce 时允许重复投递,由中心采集端幂等处理
上传分片大小必须大于 0,并保证单批 JSON 不超过中心采集设备的“入站载荷字节上限”

RemoteKey 不是 MqttClientProducer 的独立属性,而是固定写入上述三个 Topic 中。每台边缘 Gateway 必须使用不同的 RemoteKey;不要在 Topic 中使用 ${...} 占位符,也不要配置变量实体脚本或上传模板改变 Payload。历史读取 RPC Topic 不由 Gateway MQTT 专用采集使用。

选择入口​

进入“开发配置 → 采集配置”,创建一个采集设备,在“采集插件”中选择“Gateway MQTT 采集客户端”。

这是共享连接插件:在一个设备的“远端来源”中配置多个边缘节点。不要为每个边缘节点创建一个普通 MQTT 通道或 Gateway MQTT 设备。

每个边缘 Gateway 需要配置对应的 MQTT 客户端转发目标,完整拓扑和固定 Topic 见本页“配置边缘端 MQTT 上传”。

连接与安全​

参数默认值说明
连接类型Tcp根据共享 Broker 选择 TCP 或 WebSocket。
IP地址localhost共享 MQTT Broker 的主机名或 IP。
端口1883Broker 端口。
WebSocket路径/mqtt仅 WebSocket 模式使用。
客户端ID-中心采集器的持久 Client ID,在 Broker 上必须唯一。
清除会话开启控制共享 MQTT 会话状态是否保留。
MQTT协议版本4(MQTT 3.1.1)必须与 Broker 一致。
启用SSL关闭开启共享 MQTT TLS 连接。
SSL目标主机名-用于校验 Broker 证书的主机名。
客户端证书 / CA-TLS 开启时选择信任 Broker 的 CA;仅当 Broker 要求双向 TLS 时选择本机客户端证书。
允许不受信任证书关闭只用于临时调试,生产环境保持关闭。
SSL协议 / 吊销检查-按 Broker 和项目安全策略配置。
用户名 / 密码-中心采集器的 Broker 凭据。不要在截图或日志中公开。
保活时间60 秒MQTT Keep Alive 周期。
连接超时3000 毫秒建立共享连接的等待上限。

远端来源与协议​

参数说明
Topic根默认 TGateway/Gateway。中心采集器和全部边缘转发目标必须一致。
远端来源打开来源列表,每个边缘 Gateway 新增一条。
RemoteKey稳定来源键,只能使用 ASCII 字母、数字、短横线或下划线,且必须唯一。
显示名称调试页中显示的边缘节点名称。
启用控制当前来源是否参与订阅、快照、目录和 RPC。
QoS当前来源固定协议消息使用的 QoS。
允许远程写入允许中心向边缘变量发起 RPC 写入,默认关闭。
快照间隔默认 60 秒,范围 10~3600。
请求超时默认 30 秒,范围 1~600。
离线超时默认 180 秒,必须大于快照间隔。

共享 MQTT 会话只负责传输;每个来源的身份由 Topic 命名空间中的 RemoteKey 区分。

容量限制​

参数默认值说明
远端来源上限32当前设备允许配置的边缘来源数。
快照并发上限4同时执行的快照或同步任务数。
入站载荷字节上限1048576单条 MQTT 入站载荷上限。
每秒消息上限200全部来源进入解析器的消息速率上限。
入站处理并发上限4并发 JSON 处理任务数。
JSON深度上限64协议 JSON 最大嵌套深度。
单来源目录上限100000一个来源的最大变量数。
目录总上限300000全部来源变量总数,不能小于单来源上限。
RPC等待上限256同时等待的远程 RPC 批次数。
详细日志关闭记录脱敏协议摘要;排障后关闭。

只有在确认内存、Broker 流量和来源规模后才提高限制。

地址规则​

{RemoteKey}/{RemoteVariableId}

示例:factory-a/828746157506629。

远端变量 ID 来自边缘 Gateway,不能替换为本地镜像变量 ID。

设备调试​

进入“开发配置 → 采集配置”,选择 Gateway MQTT 客户端设备,打开“调试 → 协议调试 · GatewayMqttCollectClient”。

功能作用
远端网关查看来源连接、目录、消息计数和错误,并请求快照或测试 RPC。
远端变量查询来源变量目录和在线状态。
诊断日志查看按来源过滤的协议诊断事件。
变量同步预览并确认远端目录同步到本地变量的差异。

Gateway MQTT 采集客户端专用调试面板

“概览”和“运行状态”是公共工作台页,本专题不重复截图。

验证方法​

  1. 新增一个具有唯一 RemoteKey 的远端来源。
  2. 确认边缘 MQTT 目标使用相同 Topic 根和 RemoteKey。
  3. 确认共享连接在线,远端来源状态变为在线。
  4. 请求快照并等待远端目录完成。
  5. 读取一个镜像变量并与边缘值比较。
  6. 仅在中心、边缘、目标和变量权限都允许时测试远程写入。

常见问题​

现象检查方法
共享连接无法启动Broker 地址、端口、客户端ID、凭据、TLS、CA 和 ACL。
来源一直离线RemoteKey、Topic 根、边缘目标状态、快照间隔和协议消息。
目录为空边缘转发范围、变量目录上传、快照响应、载荷上限和目录限制。
多个来源数据混淆每个来源必须使用唯一 RemoteKey,每个镜像地址必须使用匹配的来源键。
快照超时边缘连接、请求超时、消息速率、载荷大小和 Broker 流量。
远程写入失败两端远程写入开关、变量权限和 RPC 响应日志。
来源变为降级离线超时、快照完成情况、边缘重连状态和诊断日志。

相关操作​