Mqtt 当订阅服务器脱机且QOS=2时,mosquitto代理发布的消息存储

Mqtt 当订阅服务器脱机且QOS=2时,mosquitto代理发布的消息存储,mqtt,iot,mosquitto,paho,Mqtt,Iot,Mosquitto,Paho,我的发布者和订阅者都连接到MOSQUITO(paho)代理,QOS=2,并通过clean_session=false维护持久会话。当我在订阅服务器连接到代理的情况下发布消息时,订阅服务器成功接收到消息,现在如果我断开订阅服务器的连接,然后再次发布消息并连接订阅服务器,我将能够在订阅服务器脱机时检索这些消息 我的问题是-- 在订阅服务器脱机时,代理中是否有存储所有消息的存储 如果是,它可以存储多长时间或多少条消息 这种方法是否适用于实时GPS跟踪,用户可以长时间(5-6小时)离线 即使断电,也会保

我的发布者和订阅者都连接到MOSQUITO(paho)代理,QOS=2,并通过clean_session=false维护持久会话。当我在订阅服务器连接到代理的情况下发布消息时,订阅服务器成功接收到消息,现在如果我断开订阅服务器的连接,然后再次发布消息并连接订阅服务器,我将能够在订阅服务器脱机时检索这些消息

我的问题是--

  • 在订阅服务器脱机时,代理中是否有存储所有消息的存储

  • 如果是,它可以存储多长时间或多少条消息

  • 这种方法是否适用于实时GPS跟踪,用户可以长时间(5-6小时)离线

  • 即使断电,也会保持会话持久性

  • 如果我在实时gps跟踪中使用这种方法,它可以为可扩展的应用程序处理多少流量

  • 是的,有一个文件(mosquitto.db)。您可以在文件
    autosave*
    persistence*
    选项中控制此文件写入磁盘的位置

  • 只要存在持久性会话且限制为磁盘空间(对于32位MOSQUITO,可能为2-4gb),就可以存储消息。但无论哪种方式,这都是大量的消息(除非您有愚蠢的大消息)

  • 这取决于您的消息速率和发布者/订阅者的数量

  • 是会话持久性保存在同一个db文件中,因此状态在MOSQUITO重新启动时保持

  • 同样,这实际上取决于您拥有多少发布者/订阅者以及消息速率