将MQTT与多个订户一起使用

时间:2016-01-26 13:31:34

标签: mqtt mosquitto

我正在使用mosquitto(http://mosquitto.org/)作为MQTT代理,我正在寻找有关负载均衡订阅者的建议(同一主题)。这是如何实现的?我读过的有关该协议的所有内容都声明所有 相同主题的订阅者都会收到已发布的消息。

这似乎效率低下,因此我正在寻找一种方法,以循环方式将已发布的消息提供给其中一个连接的订阅者,以确保负载平衡状态。

如果MQTT无法做到这一点,那么订阅者如何避免被消息淹没?

2 个答案:

答案 0 :(得分:8)

通常,您设计的MQTT应用程序的方式是您没有不堪重负的订阅者。您可以通过将负载分散到不同主题来实现此目的。

如果您真的无法做到这一点,请查看共享订阅方法,如MessageSightHiveMQ等复杂的MQTT代理。这正是您正在寻找的功能,但它依赖于代理,并且不属于官方MQTT规范。

答案 1 :(得分:2)

MQTT是一个发布/订阅协议,其基础是1到多个消息的分发,而不是您描述的1到1(很多)。您所描述的内容更像是一个消息队列系统,它与Pub / Sub明显不同。

作为此协议的纯实现,Mosquitto不支持您所描述的传递。一种解决方案是向用户提供一个本地队列,其中传入的消息被添加到线程池中然后被线程池使用。

我确信IBM Message Sight设备可能会提供您正在寻找的消息传递类型作为名为Shared Subscriptions的协议的扩展,但启用此功能后,它将偏离纯MQTT规范。< / p>