Skip to main content

MQTT配置示例

  1. ClientID 消费者和生产者不能用同一个
  2. Topic 可以自行指定(不存在会自动创建)
  3. ConsumeMQTT 中客户端 ID 启动时需要唯一,所以集群模式下不能 ALL Node 执行,可以通过指定成${UUID()}的方式,但是这样一条消息在流程中会生成多条消费记录(多个消费客户端)

一、PublishMQTT

将 FlowFile 的内容作为消息发送到 MQTT

1. 组件配置

  • 默认仅需要配置上述 3 个属性
  • 其他属性需要时再进行配置

二、ConsumeMQTT

当从 MQTT 接收到消息时,此处理器会生成一个 FlowFile,其中 FlowFile 的内容是 MQTT 消息的值

1. 组件配置

  • 默认需要配置URI、客户端 ID(需要唯一)和 topic 三个属性

  • 其他属性需要时再进行配置

  • 最大队列属性

    1. 当 ConsumeMQTT 组件的调度小于消息推送频率时,组件会创建一个内部队列,新产生的消息会进入到这个队列中备份,每次组件调度时,都会从内部队列中取一条消息进行消费

    2. 如果内部队列已满,MQTT 客户端将尝试最多 1 秒将消息添加到内部队列中。如果在这个时间之后内部队列仍然是满的,则会抛出一个异常 “订阅者队列已满”,消息将被丢弃,客户端将断开连接。如果 QoS 属性设置为 0,则消息将丢失

三、流程模板

参见:模板文件

四、MQTT 环境