0

我有一个 nodejs 引擎,它使用 MQTT 订阅来自许多 IoT 设备的消息。随着物联网设备数量的增加,我想以集群模式运行nodejs引擎。这导致每个集群都接收到所有 MQTT 消息。有没有办法避免这种情况?一种仅接收一次 MQTT 消息并且服务消息的负载可以平均分配的方式。

设置:

带有 MQTT 客户端的 Nodejs 引擎通过 EC2 实例中的 pm2 运行。在另一个 EC2 实例中运行的 MQTT 代理。

4

1 回答 1

1

您需要使用支持共享订阅的代理。

这允许多个客户端连接到代理,然后都订阅相同的主题[s],并且代理将以循环方式将每条消息传递给组中的一个客户端。

共享订阅是 MQTT v5 规范的一个选项部分,一些代理在其 MQTT v3 代理中没有标准实现。

您可以在此处阅读有关共享订阅的更多信息

于 2021-08-24T12:02:13.813 回答