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.