Sobes.tech
Junior — Middle

Kako odrediti činjenicu da je poruka pročitana u Kafka?

sobes.tech АИ

Одговор од АИ

U Kafka, činjenica da je poruka pročitana određuje se pomoću ofseta (offsets) u particijama teme. Svaki potrošač (consumer) prati do kojeg ofseta je pročitao poruke u svakoj particiji.

Da biste odredili da je poruka pročitana, potrebno je:

  • Uveriti se da je potrošač uspešno obradio poruku.
  • Potvrditi (commit) ofset te poruke u Kafka, tj. obavestiti brokera da su sve poruke do tog ofseta obrađene.

U Go, koristeći Kafka klijent (npr. sarama ili confluent-kafka-go), možete eksplicitno potvrditi ofsetove nakon obrade poruka. Ako je ofset potvrđen, smatra se da je poruka pročitana i neće biti ponovo dostavljena ovom potrošaču.

Primer sa sarama (pojednostavljeno):

consumer.MarkMessage(msg, "") // Obeleži poruku kao pročitanu
consumer.CommitOffsets()       // Potvrdi ofsetove

Na ovaj način, činjenica da je poruka pročitana je uspešan commit ofseta u Kafka.