Até agora, o EMQ (Erlang MQTT Broker) parece não persistir mensagens de QoS 1/2 no disco: Como o EMQ persiste em mensagens de QoS 1/2?
Portanto, no caso de uma reinicialização inesperada do servidor, limites de memória, ou outras mensagens de eventos podem ser perdidos apesar QoS 1/2 mensagens de nível devem ser entregues pelo menos ou exatamente uma vez.
Existem intermediários MQTT que persistem mensagens de QoS 1/2 no disco, garantindo a entrega?
Respostas:
Eu acho que o Mosquitto salva as mensagens na memória em disco.
fonte
O VerneMQ é um exemplo de um broker MQTT que garante a entrega de mensagens QoS1 / 2 aceitas, à medida que são gravadas no disco (usando o LevelDB). O VerneMQ é, de certa forma, semelhante ao EMQ, pois também é de código aberto e suporta cluster (embora usando uma tecnologia diferente). Divulgação completa, sou engenheiro da VerneMQ.
fonte
O HiveMQ parece fornecer várias opções para persistir os dados da sessão, incluindo mensagens de QoS 1/2.
As opções de persistência estão listadas aqui :
Por padrão, o HiveMQ usará a persistência do arquivo , que salva todos os dados no disco para que possam ser recuperados a qualquer momento.
fonte