Sobes.tech
Junior — Middle

Cum se poate determina faptul că un mesaj a fost citit în Kafka?

sobes.tech AI

Răspuns de la AI

În Kafka, faptul că un mesaj a fost citit se determină prin offset-uri în partițiile topic-ului. Fiecare consumator (consumer) urmărește până la ce offset a citit în fiecare partiție.

Pentru a determina că un mesaj a fost citit, trebuie:

  • Să te asiguri că consumatorul a procesat cu succes mesajul.
  • Să confirmi (commit) offset-ul acestui mesaj în Kafka, adică să informezi brokerul că toate mesajele până la acest offset au fost procesate.

În Go, folosind un client Kafka (de exemplu, sarama sau confluent-kafka-go), poți confirma explicit offset-urile după procesarea mesajelor. Dacă offset-ul este confirmat, mesajul este considerat citit și nu va fi livrat din nou acestui consumator.

Exemplu cu sarama (simplificat):

consumer.MarkMessage(msg, "") // Marchează mesajul ca citit
consumer.CommitOffsets()       // Confirmă offset-urile

Astfel, faptul că un mesaj a fost citit este o confirmare de succes a offset-ului în Kafka.