MQTT 后端扩展

MQTT backend scaling

我目前正在开发一个典型的物联网服务。目前,多个设备连接到一个 MQTT 代理 (mosquitto),我的 java 后端也连接到代理 (Paho)​​。

我看到的问题如下: 当我要拥有 java 后端的多个实例时,每个后端都将接收并处理收到的每条消息。这是个大问题。我只想向一个 java 后端发送消息。有人知道如何处理这个问题吗?

顺便说一句:Java 后端将根据负载添加或删除。

有几个选项

  1. 在您的应用程序和 MQTT 代理之间放置一个排队系统,可能类似于 Apache Kafka
  2. HiveMQ 和 IBM MessageSight 代理支持(不同的实现)称为共享订阅的东西。这允许消息在多个客户端之间共享。共享订阅很可能会被正式添加到 MQTTv5 规范中,这应该意味着它将被添加到更多代理中并具有标准实现。