Sobes.tech
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:

  1. Consumatorul primește un mesaj din topic.
  2. După procesarea cu succes a mesajului, consumatorul înregistrează (face commit) offset-ul mesajului.
  3. 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()