跳到主要内容

ZeroMQ 生产者

插件用途

通过 ZeroMQ Socket 发布变量、设备、报警和插件事件,适合进程间或局域网内的低开销消息传输。配置页面中的插件名称为“ZeroMQProducer”。

转发组范围、触发、分批、缓存和启停见数据转发。本页只说明 ZeroMQ 地址、Socket、绑定方式、Topic 模板和专用调试。

功能入口

进入“开发配置 → 数据转发”,按以下顺序配置:

  1. 保存转发组变量范围、触发、定时间隔、在线过滤和批处理策略。
  2. 新增目标,选择“ZeroMQProducer”,填写目标基本信息。
  3. 打开“目标属性”,配置 Endpoint、Socket、绑定方式、高水位、Topic、模板和缓存。
  4. 保存并启用目标,使用匹配的测试接收端订阅或拉取消息,再打开目标调试。

目标基本信息

参数默认值如何配置
所属转发组-必须选择已保存的转发组。
目标名称-必填,同组唯一。
启用开启关闭时不会创建 ZeroMQ Socket。
日志级别Info排查 Endpoint、连接或发送问题时临时使用 Debug
启动超时60页面可填 13600 秒。

目标属性

连接与容量

参数默认值如何配置
连接地址tcp://127.0.0.1:5555填 ZeroMQ Endpoint,如 tcp://主机:端口ipc://文件 或部署支持的其它协议。发送端和接收端必须使用同一个地址。
Socket类型Pub当前支持 Pub(发布/订阅)、Push(推送/拉取)和 Dealer(异步请求/响应)。必须与接收端 Socket 类型匹配。
绑定模式开启开启时本目标 Bind 地址;关闭时本目标 Connect 已监听的地址。同一 Endpoint 只能由一端 Bind。
高水位标记1000Socket 发送队列上限。接收端处理较慢时,达到上限可能阻塞或丢弃消息。

ZeroMQ Socket 发送成功只表示本地 Socket 接受了消息,不确认对端已经收到;需要端到端确认时,使用 Dealer 与应用层 ACK 协议。

Topic 模板

参数默认值如何配置
设备Topic模板设备消息前缀/Topic。留空则不发布设备模型;可使用 ${Name} 等设备字段。
变量Topic模板ThingsGateway/Variable变量消息前缀/Topic;可使用 ${DeviceName}${Name}
报警Topic模板报警消息前缀/Topic;留空则不发布报警模型。
插件事件Topic模板插件事件前缀/Topic;留空则不发布插件事件模型。

Topic 模板中的 ${字段名} 必须存在于对应实体或实体脚本结果中。转发组决定哪些变量进入目标;Topic 决定消息类别和接收端的订阅条件。

目标变量属性

ZeroMQ 提供通用的 数据1数据10 十个可选文本字段,默认为空,不会自动加入消息。变量范围、别名、触发和分批在数据转发中配置。

参数默认值如何配置
数据1~数据10按项目约定保存附加文本;需要发送时在实体脚本或上传模板中显式引用。

数据与脚本

参数默认值如何配置
详细日志关闭开启后记录每次发送的正文或计数,短时间排查使用。
JSON缩进格式化开启关闭可减小 payload。
JSON忽略Null开启关闭后保留 null 字段。
设备列表上传开启设备数据按列表发布;关闭则逐条发布。
变量列表上传开启变量数据按列表发布;关闭则逐条发布。
变量字典上传关闭仅变量列表开启时生效,按 DeviceName → Name → Value 组织。
报警列表上传开启报警数据按列表发布;关闭则逐条发布。
报警字典上传关闭仅报警列表开启时生效,按设备和变量组织。
插件事件列表上传开启插件事件按列表发布;关闭则逐条发布。
设备/变量/报警/插件事件实体脚本选择脚本改写发送实体,再参与 Topic 和 payload 渲染。

上传模板字段

在“上传模板配置”中为每类实体选择 TextJson 并填写 ${字段名} 模板;留空使用默认 JSON 序列化。可用字段见Kafka 生产者模板字段

缓存与容量

参数默认值如何配置
启用失败重试缓存开启Socket 发送失败时保留数据并在恢复后补发。
缓存文件最大行数262144CacheDB 出站记录上限,超过后删除最旧数据。
上传分片大小2000每次从缓存取出的最大记录数。
内存队列上限100000内存缓冲上限,持续超限仍可能丢弃旧数据。
过滤离线数据关闭开启后过滤离线变量;转发组在线过滤也会生效。
并发上传数量1ZeroMQ Socket 非线程安全,插件会将大于 1 的值降为 1

上传模板字段

在“上传模板配置”中选择 Text 或 JSON 模式并插入 ${字段名},保存前先执行预览。

数据类型可用字段
变量IdNameDeviceNameValueCollectGroupCollectTimeChangeTimeIsOnlineDataTypeUnitRegisterAddressRemark1
设备IdNameActiveTimeDeviceStatusPluginNameDescriptionLastErrorMessageRemark1
报警AlarmIdVariableIdNameDeviceNameAlarmCodeAlarmLevelAlarmLimitAlarmTextRecoveryCodeAlarmTimeEventTimeAlarmTypeEventTypeRemark1
插件事件DeviceNameObjectValue

目标调试

进入“开发配置 → 数据转发”,选择 ZeroMQ 目标,打开“调试 → 协议调试 · ZeroMq”。

功能作用
ZeroMQ 协议调试检查 Endpoint、绑定模式、Topic 和测试消息发布结果。

ZeroMQ 生产者专用调试面板

验证方法

  1. 启动 Socket 类型和地址匹配的测试订阅端。
  2. 确认只有一端 Bind,另一端使用 Connect。
  3. 让一个转发范围内的测试变量产生新值。
  4. 在订阅端核对 Topic、正文和消息条数。
  5. 接收端较慢时检查高水位标记和目标日志。

常见问题

现象检查方法
订阅端没有消息Endpoint、Socket 类型、绑定模式、防火墙、订阅条件和转发组范围。
地址已被占用确认只有一个进程 Bind;另一端改为 Connect 或更换地址。
消息延迟或丢失接收速度、高水位标记、网络和目标日志。
Topic 不正确Topic 模板、${字段名}、实体值和当前目标。
正文无效模板预览、JSON 语法、占位符和实体脚本输出。

相关操作

  • 数据转发:配置转发组、触发、缓存和公共目标操作。
  • 插件索引:查找其它采集或数据转发插件。