Sobes.tech
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.