Que se passe-t-il si Mosquitto manque de mémoire pour stocker les messages QoS 1/2?

8

Dans MQTT, les messages avec QoS 1 ou 2 doivent être remis au moins une fois (les messages QoS 2 doivent être livrés exactement une fois). Si le client n'est pas connecté, le courtier doit stocker le message jusqu'à ce que le client soit prêt à le recevoir.

Le blog HiveMQ a un point intéressant:

Mais que se passe-t-il si un client ne se connecte pas pendant longtemps? La contrainte de stockage des messages est souvent la limite de mémoire du système d'exploitation. Il n'existe aucun moyen standard sur ce qu'il faut faire dans ce scénario. Cela dépend totalement du cas d'utilisation. Dans HiveMQ, nous fournirons la possibilité de manipuler les messages en file d'attente et de les purger.

Comme cela semble dépendre du courtier, comment Mosquitto gère-t-il cette situation? Est-ce qu'il se bloque juste après un manque de mémoire ou les anciens messages sont-ils finalement purgés?

Aurora0001
la source

Réponses:

9

Les messages sont conservés sur le disque non seulement conservés en mémoire.

Regardez les options autosave_intervalet autosave_on_changepour savoir quand les messages sont écrits sur le disque.

La source

hardillb
la source