当前位置: 首页 > 知识库问答 >
问题:

在多个订阅服务器中使用MQTT

於彬
2023-03-14

我正在使用mosquitto(http://mosquitto.org/)作为MQTT代理,并寻求关于负载平衡订阅服务器的建议(针对相同的主题)。这是如何实现的?我所读到的关于该协议的所有内容都表明,相同主题的所有订阅者都将获得一条发布消息。

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

共有1个答案

邢杰
2023-03-14

通常,您设计MQTT应用程序的方式不会让订阅者不堪重负。您可以通过将负载分散到不同的主题来实现这一点。

如果您真的做不到这一点,那么看看像MessageSight和HiveMQ这样成熟的MQTT代理所拥有的共享订阅方法。这正是您正在寻找的特性,但它依赖于代理,不是官方MQTT规范的一部分。

 类似资料:
  • > 糟糕的图案设计 仅在连接订阅服务器时才启动,如果没有可用的订阅服务器时停止 不成功共享数据,需要两个类(主题类和重复可观察类) 我希望避免监听器/接口来共享周围的信息,让rxjava2来完成它的工作。 经过研究,我发现有refcount()和share(),但我不确定这是否是解决这个问题的正确方法。在我的例子中,这是一个REST服务,它轮询服务器,如果至少有一个订阅服务器连接到其他地方,它应该

  • 我有一个使用ActiveMQ的JMS生产者/订阅者的简单Spring应用程序,配置如下: 我试过所有可能的解决办法,但没有一个奏效。我们非常感谢任何帮助

  • 我在spring中有一个服务,它需要使用十种不同的方法获取数据。 我希望这些方法并行执行,以执行一些DB操作并返回到父线程。但是父线程应该等到所有响应出现,然后返回响应。 在我当前的方法中,我使用反应式mono异步执行所有方法,但主线程不等待订阅者方法完成。 下面是我订阅的两种方法 下面是我的主要方法 以下是我的输出: 我的输出显示,主线程没有等待订阅服务器完成其任务,因此我如何处理这种情况?

  • 我正在尝试使用spring-integration-kafka-2.1.0。在我公司的项目中发布。但是,由于下面列出的例外情况,它不起作用:org。springframework。信息。MessageDeliveryException:Dispatcher没有频道“org”的订户。springframework。网状物上下文WebApplicationContext:/order。“奥Kafka”

  • 我尝试使用spring-boot-starter-data-r2dbc和oracle-r2dbc运行r2dbc应用程序,但它给我一个异常“org . spring framework . Dao . dataaccessresourcefailureexception:无法获得r2dbc连接;嵌套异常为Java . lang . illegalstateexception:此发布者不支持多个订阅者

  • 我试图利用固有的WSO2ESB主题发布到jms队列。我已经创建了主题,并提供了一个订阅者URL:jms:/topictest?transport.jms.destinationtype=queue。然而,当我将消息发布到主题时,它不能被传递到队列。日志生成以下内容 “系统无法从jms:/queue?destination=topictest URL推断传输信息。” 另外,我似乎不知道如何发布到WS