Existem intermediários MQTT que persistem mensagens de QoS 1/2 no disco?

11

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?

Ghanima
fonte
2
Ter um olhar para iot.stackexchange.com/questions/784/...
hardillb

Respostas:

8

Eu acho que o Mosquitto salva as mensagens na memória em disco.

persistência [true | false] Se true, os dados de conexão, assinatura e mensagem serão gravados no disco em mosquitto.db no local ditado por persistence_location. Quando o mosquitto é reiniciado, ele recarrega as informações armazenadas no mosquitto.db. Os dados serão gravados no disco quando o mosquito for fechado e também em intervalos periódicos, conforme definido por autosave_interval. A gravação do banco de dados de persistência também pode ser forçada enviando mosquito para o sinal SIGUSR1. Se falso, os dados serão armazenados apenas na memória. O padrão é false.

Ross
fonte
7

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.

Lars Hesel Christensen
fonte
Pergunta secundária: Vocês ofereceram corretor público VerneMQ para teste e avaliação?
Ross
1
Oi @Ross, temos uma instância pública em execução em public.vernemq.com:1883, mas você não seria capaz de fazer testes de carga lá, pois está sendo executado em uma pequena máquina virtual - portanto, não espere que ele seja muito eficiente . Ele também tem restrições no número de conexões simultâneas originárias de um único IP. Se você quiser, entre em contato conosco e ficaremos felizes em ver se podemos apoiar seu caso de uso. Você pode escrever-nos em info em vernemq.com ou preencha o formulário de contato aqui: vernemq.com/services.html
Lars Hesel Christensen
1
Obrigado, não preciso fazer testes de carga, apenas para verificar se consigo conectar-me a diferentes intermediários e verificar se há algum problema de compatibilidade.
Ross
1
Isso me lembra que a versão pública é relativamente antiga - verei se não consigo atualizá-la para a versão mais recente de hoje.
Lars Hesel Christensen
5

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 :

  • Persistência de arquivo
  • Persistência na memória

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.

Para garantir a consistência dos dados entre as reinicializações do broker, o HiveMQ usa a persistência do disco por padrão. Isso significa que, mesmo se o broker parar ou travar, todos os dados serão preservados e, após uma reinicialização, o broker poderá continuar sua operação como se nada tivesse acontecido.

Aurora0001
fonte