Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Tratamento de mensagens duplicadas

Existe alguma configuração no Kafka que permita automaticamente descartar mensagens duplicadas e manter apenas um único registro, evitando o problema de múltiplos processamentos de pagamento em caso de novos envios de mensagens? Ou seria necessário implementar uma lógica externa, utilizando um banco de dados para armazenar o que já foi processado e, assim, descartar as mensagens duplicadas?

1 resposta
solução!

Olá, Eric. Tudo bem?

O Kafka, por si só, não possui uma configuração automática para descartar mensagens duplicadas, o que podemos é garantir que o produtor envie mensagens de forma idempotente. Isso significa que, mesmo que uma mensagem seja enviada várias vezes, o efeito no sistema será o mesmo como se tivesse sido enviada apenas uma vez. Podemos fazer isso da seguinte forma:

Properties properties = new Properties();
properties.setProperty(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, "true");

Isso ajuda a evitar a duplicação de mensagens durante a produção. Outras de tratar é via código por meio de IDs exclusivos, filas de mensagens, dentre outros.. como mostra neste artigo. Está em inglês, mas, usando o recurso de tradução de páginas do próprio navegador é possível compreender. Espero ter ajudado.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!