-
Notifications
You must be signed in to change notification settings - Fork 334
PhxQueue部署MQTT支持
Tao He edited this page Oct 15, 2018
·
4 revisions
支持MQTT的分支:https://github.com/Tencent/phxqueue/tree/mqtt
PhxQueue支持MQTT协议。通过MQTT协议接入PhxQueue时,使用者可以直接使用标准MQTT客户端,无需自己再添加Consumer处理代码,而且业务端不再局限于 C++语言,降低使用学习和接入成本。部署PhxQueue的MQTT必须部署Store、Lock、MQTT Consumer、MQTT Broker四个模块。所有模块需要使用mqtt分支代码进行部署。下面逐一说明:
Store是一个分布式存储,用于存储队列的数据。
启动3个Store节点(加-d
参数可以在后台运行):
bin/store_main -c etc/store_server.0.conf
bin/store_main -c etc/store_server.1.conf
bin/store_main -c etc/store_server.2.conf
Lock是一个分布式存储,用于存储MQTT协议相关数据。
启动3个Lock节点(加-d
参数可以在后台运行):
bin/lock_main -c etc/lock_server.0.conf
bin/lock_main -c etc/lock_server.1.conf
bin/lock_main -c etc/lock_server.2.conf
MQTT Consumer是队列的消费者,从Store拉数据。
启动3个Consumer节点:
bin/mqttconsumer_main -c etc/consumer_server.0.conf
bin/mqttconsumer_main -c etc/consumer_server.1.conf
bin/mqttconsumer_main -c etc/consumer_server.2.conf
可以查看MQTT Consumer的日志:
ps -ef | grep mqttconsumer_main
tail -f log/consumer.0/mqttconsumer_main.INFO
tail -f log/consumer.1/mqttconsumer_main.INFO
tail -f log/consumer.2/mqttconsumer_main.INFO
MQTT Broker负责接入MQTT Client。
启动MQTT Broker节点:
bin/mqttbroker_main -c etc/mqttbroker_server.0.conf
可以查看MQTT Broker的日志:
ps -ef | grep mqttbroker_main
tail -f log/mqttbroker.0/mqttbroker_main.INFO
由于需要支持MQTT的QoS、顺序会话保持等特性,使用MQTT协议时有如下限制:
- mqtt的topic必须为(
/
+ phxqueue_topic +/
+ phxqueue_pub_id +/
)。 - 一个pub只允许绑定一个queue。
- 一个queue只允许绑定一个pub。
- 关闭重试换队列开关。