在众多的 MQTT 问题中,我想知道当所有发送到主题的消息都需要保留时,MQTT 有哪些替代方案,以及在新订阅者的队列中。
在我的公司,我们管理着远程部署,我们希望使用 MQTT 进行本地数据收集。这个想法是将数据发送到现场的本地代理(例如,在 Raspberry Pi 上运行),并且代理将拥有一个 MQTT 桥接器与我们的CloudMQTT部署。如果连接丢失,消息将在本地收集,并在重新建立连接时再次同步。
设置是典型的,如下所示:
对于我的示例,左侧将是在每个位置运行的许多(大约 100 个)MQTT 本地代理,右侧将是我们支付的 CloudMQTT 服务器。
当我阅读文章MQTT Essentials Part 8: Retained Messages 时,这部分令人失望:
保留消息是一条普通的 MQTT 消息,保留标志设置为 true。代理存储最后保留的消息和该主题的相应 QoS。订阅与保留消息主题匹配的主题模式的每个客户端在订阅后立即收到保留消息。代理仅存储每个主题的一条保留消息。
本质上,这意味着 CloudMQTT 服务器上必须有一个订阅者,监听来自我们所有位置的所有传入事件;否则,数据可能会丢失。
MQTT 似乎只保留最新消息;是否有任何其他软件包可以执行此本地 <=> 远程同步,但保留所有消息?