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.