首页 文章

将MQTT与多个订户一起使用

提问于
浏览
6

我正在使用mosquitto(http://mosquitto.org/)作为MQTT代理,我正在寻找有关负载 balancer 订阅者的建议(针对同一主题) . 这是如何实现的?我读到的关于协议的所有内容都表明 same topic 的订阅者将被发布消息 .

这似乎是低效的,因此我正在寻找一种方法,以循环方式将已发布的消息提供给其中一个连接的订户,以确保负载 balancer 状态 .

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

2 回答

  • 8

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

    如果你真的不能那样做,那么看一下像MessageSightHiveMQ这样的复杂MQTT经纪人的共享订阅方法 . 这正是您正在寻找的功能,但是依赖于代理,并且不是官方MQTT规范的一部分 .

  • 2

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

    Mosquitto作为此协议的纯实现不支持您所描述的交付 . 一种解决方案是向我们提供在订户中的本地队列,其中传入消息被添加到线程池然后被线程池消耗 .

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

相关问题