mqtt整合
最近有一个业务,要求连接多个非集群不同的mqtt服务,于是乎写了一个可根据配置动态配置的工具。starter-integration-mqtt整合了spring-integration-mqtt,只需添加配置,并实现消息订阅接口即可。可以实现订阅多个mqtt。
github源码:https://github.com/aLiang-xyl/integration-mqtt
添加依赖
<dependency>
<groupId>cn.xyliang</groupId>
<artifactId>integration-mqtt-starter</artifactId>
<version>0.0.2</version>
</dependency>
添加配置
mqtt:
config:
channel1: #通道名称,可自定义,订阅消息时需要该名称
url: [tcp://host1:1883, tcp://host1:1883] #mqtt的url
topics: [topic1, topic2] #监听的主题,和qos一一对应
qos: [1, 0] #监听主题的qos,和主题一一对应
username: admin #用户名
password: public #密码
timeout: 60 #连接超时时间,单位:秒
kep-alive-interval: 60 #心跳时间,单位:秒
async: true #发送消息时是否异步发送
client-id-append-ip: true #是否在clientId后面追加本机ip,因为clientid是唯一值,集群环境下不能使用相同的clientid,追加ip可解决该问题
consumer-client-id: consumer_client_test1 #consumer client id配置
producer-client-id: producer_client_test1 #producer client id配置
consumer-will: #consumer遗嘱消息配置
qos: 1 #遗嘱qos
topic: will_topic #遗嘱主题
payload: '{
"id": "consumer_client_test1"}' #遗嘱内容
retained: false #是否发送保留消息
producer-will: #producer遗嘱消息配置
qos: 1 #遗嘱qos
topic: will_topic #遗嘱主题
payload: '{
"id": "producer_client_test1"}' #遗嘱内容
retained: false