我尝试实现一个基于RabbitMQ集群的解决方案,集群由3个节点组成,HAProxy负载均衡器暴露端口1883,以便接收MQTT连接,并按照循环策略将其重定向到其中一个RabbitMQ节点。然后,我编写了两个简单的Python客户端,分别是发布者和订阅者。我启用了RabbitMQ MQTT插件,并创建了一个队列 myqueue,它通过路由键 my/routing/key 与 amq.topic exchange绑定,这也是两个客户端发送和接收消息的主题。
如果我启动发布器,我可以在RabbitMQ管理 Jmeter 板上看到消息速率图上升,但是如果我尝试从队列中获取消息,我会看到 Queue is empty 弹出窗口。
有人帮忙吗?
1条答案
按热度按时间rn0zuynd1#
这是从RabbitMQ节点导出的配置。
这是发布者和订阅者的源代码。
x一个一个一个一个x一个一个二个x
现在我可以发布消息并在队列中看到它,但前提是我使用默认队列,在RabbitMQ MTT插件中,该队列的名称为 mqtt-subscription-。如果我定义了一个自定义队列,则消息显然不会存储在其中。