O blog do HiveMQ lista sob "práticas recomendadas" para não assinar o curinga de vários níveis ao tentar despejar todas as mensagens em um banco de dados. Eles afirmam que o cliente assinante pode não conseguir acompanhar um alto carregamento de mensagens e propõem usar um plug-in do broker para conectar-se diretamente ao fluxo de mensagens.
Às vezes, é necessário assinar todas as mensagens transferidas pelo broker, por exemplo, ao persistir todas elas em um banco de dados. Isso não deve ser feito usando um cliente MQTT e assinando o curinga de vários níveis. O motivo é que geralmente o cliente assinante não é capaz de processar a carga de mensagens que está chegando. Especialmente se você tiver um rendimento maciço. Nossa solução recomendada é implementar uma extensão no broker MQTT, por exemplo, o sistema de plug-ins do HiveMQ permite que você se ligue ao comportamento do HiveMQ e inclua uma rotina assíncrona para processar cada mensagem recebida e persistir em um banco de dados.
Existe também
- um sistema semelhante (extensão / plugin) para o broker de mosquito,
- outro método recomendado que funcione com mosquito ou
- evidência razoável de que essa abordagem é desnecessária, ou seja, que um cliente que está se inscrevendo
#
pode se sair bem?
/programming//q/31584613/3984613 não aborda esta questão exaustivamente.