O que são garantias de entrega no Kafka?
sobes.tech IA
Resposta da IA
As garantias de entrega no Kafka descrevem exatamente como as mensagens são entregues do produtor ao broker e do broker ao consumidor. Os principais níveis de garantia:
-
No máximo uma vez (at most once) — a mensagem pode ser perdida, mas não será duplicada. Usado quando a velocidade é importante e a perda de dados é aceitável.
-
Pelo menos uma vez (at least once) — a mensagem é entregue garantidamente, mas pode ser duplicada. Este é o modo padrão de operação do Kafka.
-
Exatamente uma vez (exactly once) — a mensagem é entregue e processada exatamente uma vez, sem duplicados. No Kafka, isso é alcançado com produtores idempotentes e transações.
Para implementar exatamente uma vez nos clientes Kafka em Go, é necessário usar suporte para idempotência e transações, se a biblioteca permitir.
Exemplo de configuração de um produtor com idempotência (pseudo-código):
producer, _ := kafka.NewProducer(&kafka.ConfigMap{
"bootstrap.servers": "localhost",
"enable.idempotence": true, // garante exactly-once
})