MQTT配置示例
- ClientID 消费者和生产者不能用同一个
- Topic 可以自行指定(不存在会自动创建)
- ConsumeMQTT 中客户端 ID 启动时需要唯一,所以集群模式下不能 ALL Node 执行,可以通过指定成
${UUID()}
的方式,但是这样一条消息在流程中会生成多条消费记录(多个消费客户端)
一、PublishMQTT
将 FlowFile 的内容作为消息发送到 MQTT
1. 组件配置
- 默认仅需要配置上述
3
个属性 - 其他属性需要时再进行配置
二、ConsumeMQTT
当从 MQTT 接收到消息时,此处理器会生成一个 FlowFile,其中 FlowFile 的内容是 MQTT 消息的值
1. 组件配置
默认需要配置URI、客户端 ID(需要唯一)和 topic 三个属性
其他属性需要时再进行配置
最大队列
属性当 ConsumeMQTT 组件的调度小于消息推送频率时,组件会创建一个内部队列,新产生的消息会进入到这个队列中备份,每次组件调度时,都会从内部队列中取一条消息进行消费
如果内部队列已满,MQTT 客户端将尝试最多 1 秒将消息添加到内部队列中。如果在这个时间之后内部队列仍然是满的,则会抛出一个异常 “订阅者队列已满”,消息将被丢弃,客户端将断开连接。如果 QoS 属性设置为 0,则消息将丢失
三、流程模板
参见:模板文件
四、MQTT 环境
文档中配置示例都是基于 TCP 协议,组件也支持 TCP/TLS、Websocket和Websocket/TLS,可自行配置相关信息