Como fazer mosquito para atualizar tópicos no banco de dados não da memória?

7

Conforme sugerido em outra pergunta , adicionamos o caminho de destino como db e autosave_interval como 3000, mas após alguns dias a memória está ficando reduzida automaticamente.

Por favor, deixe-me saber se existe alguma outra solução para armazenar apenas no arquivo db.

bhuva nesh
fonte
Mesmo que você possa persistir nas mensagens no disco rígido, fazê-lo indefinidamente em algum momento preencherá seu disco. Você já pensou em deixar essas mensagens expirarem? (não tenho certeza se o mosquito fornece uma coisa dessas).
precisa saber é

Respostas:

4

O mosquitto broker não suporta o descarregamento do armazenamento de persistência em um banco de dados externo e o arquivo db é apenas um backup do banco de dados na memória, caso o broker trate ou seja encerrado.

Se você tiver um grande número de mensagens na fila para clientes offline ou um grande número de mensagens retidas grandes, a memória será consumida.

O melhor que você pode fazer é definir a persistent_client_expirationopção de remover as mensagens na fila de clientes que não fazem logon há muito tempo. Detalhes desta opção podem ser encontrados na página do manual mosquitto.conf .

Caso contrário, será necessário usar um broker diferente que suporte o armazenamento fora de processo do banco de dados de persistência. Algo como o mosca pode ser configurado para usar o mongo ou o redis como uma loja de apoio.

hardillb
fonte
Atualmente, persitent_client_expiration é de 1 hora, mas a memória ainda é consumida.
você precisa saber é o seguinte
Em seguida, o crescimento da memória provavelmente não se reduz a mensagens na fila para clientes offline.
hardillb
Existe alguma maneira de limpar as mensagens retidas manualmente?
Bhuva nesh
Não sem parar o corretor, excluir o arquivo db e reiniciar ou publicar uma carga nula ao tema (com o sinalizador retidos)
hardillb