1

我有许多设备使用 MQTT 通过 Solace 向后端服务器发送数据。由于我需要处理大量传入消息,我正在考虑启动一些侦听器实例来处理传入消息。但是,它没有帮助,因为 MQTT 发布/订阅实际上是一对多的消息传递,即相同的消息将被传递给所有订阅的侦听器。我知道 Solace 支持 DTO,但它是否支持使用 MQTT 的 DTO?如果是这样,我该怎么做?如果没有,有什么建议我可以启动多个侦听器来处理大量传入消息吗?我现在想到的是创建订阅这些主题的非独占交付队列。不确定是否有其他更好的方法。

谢谢你。

4

1 回答 1

3

MQTT 协议没有以循环方式向消费者传递消息的功能。

我假设您的后端服务器没有使用 MQTT 来接收消息。

您可以:

  1. 通过发布到不同的主题来分配负载。
  2. 让一个非独占队列订阅主题,并让队列以循环方式将消息分发给消费者。

请注意,如果您的发布者正在发布 QoS 1 消息,则选项 2 是正确的选项。如果您的所有消费者都离线,您的后端服务器将使用的消息将被假脱机在队列中。没有队列,如果没有在线消费者,消息将被丢弃。

于 2016-06-06T08:48:26.193 回答