¿Qué sucede si Mosquitto se queda sin memoria para almacenar mensajes QoS 1/2?

8

En MQTT, los mensajes con QoS 1 o 2 deben entregarse al menos una vez (los mensajes de QoS 2 deben entregarse exactamente una vez). Si el cliente no está conectado, el intermediario debe almacenar el mensaje hasta que el cliente esté listo para recibirlo.

El blog HiveMQ tiene un punto interesante:

Pero, ¿qué sucede si un cliente no se conecta en línea durante mucho tiempo? La restricción para almacenar mensajes es a menudo el límite de memoria del sistema operativo. No hay una forma estándar de qué hacer en este escenario. Depende totalmente del caso de uso. En HiveMQ proporcionaremos la posibilidad de manipular mensajes en cola y purgarlos.

Dado que esto parece depender del corredor, ¿cómo maneja Mosquitto esta situación? ¿Simplemente se bloquea después de quedarse sin memoria o finalmente se eliminan los mensajes antiguos?

Aurora0001
fuente

Respuestas:

9

Los mensajes se almacenan en el disco no solo en la memoria.

Mira las opciones autosave_intervaly autosave_on_changepara cuando los mensajes se escriben en el disco.

Fuente

hardillb
fuente