Cosa succede se Mosquitto esaurisce la memoria per memorizzare i messaggi QoS 1/2?


8

In MQTT, i messaggi con QoS 1 o 2 devono essere recapitati almeno una volta (i messaggi QoS 2 devono essere consegnati esattamente una volta). Se il client non è connesso, il broker deve archiviare il messaggio fino a quando il client non è pronto a riceverlo.

Il blog di HiveMQ ha un punto interessante:

Ma cosa succede se un cliente non viene online per molto tempo? Il vincolo per la memorizzazione dei messaggi è spesso il limite di memoria del sistema operativo. Non esiste un modo standard su cosa fare in questo scenario. Dipende totalmente dal caso d'uso. In HiveMQ forniremo la possibilità di manipolare i messaggi in coda e di eliminarli.

Dal momento che questo sembra dipendere dal broker, come fa Mosquitto a gestire questa situazione? Si arresta in modo anomalo dopo aver esaurito la memoria o i vecchi messaggi vengono infine eliminati?

Risposte:


9

I messaggi persistono sul disco non solo in memoria.

Guarda le opzioni autosave_intervale autosave_on_changeper quando i messaggi vengono scritti su disco.

fonte

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.