MQTT 代理获取所有消息的订阅者数量

Number of subscribers to an MQTT brokers to get all messages

我是 运行 mosquttio,作为 MQTT 代理,我有多个设备定期发送传感数据。我想收集所有消息并存储它们。我的问题是,与代理建立多个连接(每个连接都有一个唯一的 ID 并订阅主题的子集。)是否有任何优势,还是最好让一个连接收集所有数据。

注意:订阅者将与代理在同一台机器上。

这可能取决于所讨论的消息以及客户端将对这些消息进行的处理。

让一个客户端订阅“#”意味着在处理消息时,订阅的主题上只有一个条目可以搜索匹配项。但在大多数情况下,这可能是微不足道的开销。

如果消息速率足够高并且存储有任何开销,则使用称为共享订阅的东西允许客户端池全部订阅相同的主题(或通配符)并确保任何消息只交付给池中的单个客户端。这意味着消息的处理可以在客户端池中进行负载平衡。

使用共享订阅意味着您可以在池中动态添加或删除客户端,而无需跨客户端重新划分主题 space。