Junior — Middle
Ako je mogoče ugotoviti, da je bila sporočilo prebrano v Kafka?
sobes.tech AI
Odpoveď od AI
V Kafka je fakt, že bola správa prečítaná, určuje sa pomocou offsetov v partitionoch témy. Každý spotrebiteľ (consumer) sleduje, do ktorého offsetu prečítal správy v každej partition.
Aby ste určili, že správa bola prečítaná, je potrebné:
- Uistiť sa, že spotrebiteľ úspešne spracoval správu.
- Potvrdiť (commit) offset tejto správy v Kafka, teda informovať brokera, že všetky správy do tohto offsetu boli spracované.
V Go, s použitím klienta Kafka (napríklad sarama alebo confluent-kafka-go), môžete explicitne potvrdiť offsety po spracovaní správ. Ak je offset potvrdený, považuje sa za prečítaný a nebude mu znovu doručený tento spotrebiteľ.
Príklad s sarama (zjednodušený):
consumer.MarkMessage(msg, "") // Označiť správu ako prečítanú
consumer.CommitOffsets() // Potvrdiť offsety
Týmto spôsobom je fakt, že správa bola prečítaná, úspešný commit offsetu v Kafka.