O que acontece se o Mosquitto ficar sem memória para armazenar mensagens de QoS 1/2?

8

No MQTT, as mensagens com QoS 1 ou 2 devem ser entregues pelo menos uma vez (as mensagens QoS 2 devem ser entregues exatamente uma vez). Se o cliente não estiver conectado, o broker deverá armazenar a mensagem até que o cliente esteja pronto para recebê-la.

O blog do HiveMQ tem um ponto interessante:

Mas o que acontece se um cliente não fica online por muito tempo? A restrição para armazenar mensagens geralmente é o limite de memória do sistema operacional. Não há uma maneira padrão sobre o que fazer nesse cenário. Depende totalmente do caso de uso. No HiveMQ, forneceremos a possibilidade de manipular as mensagens na fila e eliminá-las.

Como isso parece depender do corretor, como o Mosquitto lida com essa situação? Ele simplesmente falha após ficar sem memória ou as mensagens antigas são finalmente eliminadas?

Aurora0001
fonte

Respostas:

9

As mensagens são mantidas no disco e não apenas mantidas na memória.

Veja as opções autosave_intervale autosave_on_changepara quando as mensagens são gravadas no disco.

Fonte

hardillb
fonte