Sobes.tech
Junior — Middle

Como é que o Kafka realiza o processo de confirmação do processamento das mensagens?

sobes.tech IA

Resposta da IA

No Apache Kafka, a confirmação do processamento de mensagens (acknowledgment) é feita através do mecanismo de commit de offset.

Processo:

  1. O consumidor recebe uma mensagem do tópico.
  2. Após o processamento bem-sucedido da mensagem, o consumidor registra (faz commit) do deslocamento (offset) dessa mensagem.
  3. O Kafka armazena a informação sobre o último deslocamento confirmado para cada grupo de consumidores.

Em Go, usando um cliente Kafka (por exemplo, sarama ou confluent-kafka-go), a confirmação pode ser automática ou manual:

  • Commit automático — o cliente envia periodicamente informações sobre o último offset processado.
  • Commit manual — o desenvolvedor chama explicitamente o método commit após o processamento da mensagem, o que oferece maior controle e confiabilidade.

Exemplo com sarama (commit manual):

consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// No manipulador de mensagens, após o processamento:
session.MarkMessage(message, "") // marca a mensagem como processada
// Após a conclusão do processamento, chama-se Commit()