El EMQ (Erlang MQTT Broker) es un "intermediario de mensajes MQTT altamente extensible distribuido, masivamente escalable" con un informe de "1.3 millones de conexiones MQTT concurrentes", por lo que potencialmente permite a un gran número de clientes publicarlo y suscribirse a él. Parece probable que algunos clientes puedan estar desconectados en cualquier momento.
Como esta pregunta ¿Qué sucede si Mosquitto se queda sin memoria para almacenar mensajes QoS 1/2? pregunta sobre Mosquitto:
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.
Entonces, ¿cómo EMQ persiste los mensajes QoS 1/2 hasta la entrega, es decir, un reinicio del intermediario o con respecto a los límites de memoria?
Respuestas:
La respuesta parece ser: no lo hace . Este problema en su rastreador de errores dice:
Además, después de analizar un par de problemas más, encontré este informe :
Esencialmente, a partir de v2.0.5:
No es exactamente ideal, pero ese parece ser el comportamiento actual, por lo que si los mensajes persistentes son críticos para su caso de uso, use un agente diferente.
fuente