Junior — Middle
Hoe wordt het bevestigingsproces van berichtverwerking in Kafka uitgevoerd?
sobes.tech AI
Antwoord van AI
In Apache Kafka wordt de bevestiging van berichtverwerking (acknowledgment) uitgevoerd via het offset commit-mechanisme.
Proces:
- De consument ontvangt een bericht uit de topic.
- Na succesvolle verwerking van het bericht, registreert (commit) de consument de offset van dat bericht.
- Kafka slaat de informatie op over de laatste bevestigde offset voor elke consumentengroep.
In Go, met behulp van een Kafka-client (bijvoorbeeld sarama of confluent-kafka-go), kan de bevestiging automatisch of handmatig worden gedaan:
- Automatische commit — de client stuurt periodiek informatie over de laatst verwerkte offset.
- Handmatige commit — de ontwikkelaar roept expliciet de commit-methode aan na het verwerken van het bericht, wat meer controle en betrouwbaarheid biedt.
Voorbeeld met sarama (handmatige commit):
consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// In de berichtverwerker, na verwerking:
session.MarkMessage(message, "") // markeert het bericht als verwerkt
// Na voltooiing van de verwerking wordt Commit() aangeroepen