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:
- O consumidor recebe uma mensagem do tópico.
- Após o processamento bem-sucedido da mensagem, o consumidor registra (faz commit) do deslocamento (offset) dessa mensagem.
- 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()