Junior — Middle
Cum se realizează procesul de confirmare a procesării mesajelor în Kafka?
sobes.tech AI
Răspuns de la AI
În Apache Kafka, confirmarea procesării mesajelor (acknowledgment) se realizează prin mecanismul de commit al offset-urilor.
Proces:
- Consumatorul primește un mesaj din topic.
- După procesarea cu succes a mesajului, consumatorul înregistrează (face commit) offset-ul mesajului.
- Kafka stochează informația despre ultimul offset confirmat pentru fiecare grup de consumatori.
În Go, folosind un client Kafka (de exemplu, sarama sau confluent-kafka-go), confirmarea poate fi automată sau manuală:
- Commit automat — clientul trimite periodic informații despre ultimul offset procesat.
- Commit manual — dezvoltatorul apelează explicit metoda commit după procesarea mesajului, oferind mai mult control și fiabilitate.
Exemplu cu sarama (commit manual):
consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// În handler-ul de mesaje, după procesare:
session.MarkMessage(message, "") // marchează mesajul ca procesat
// După finalizarea procesării, se apelează Commit()