Aký mechanizmus záruky doručenia správ bol v Kafka na vašom predchádzajúcom pracovisku použitý?
sobes.tech AI
Odpoveď od AI
V Kafka sú záruky doručenia správ zabezpečené konfiguráciou parametrov producenta a konzumenta, ako aj mechanizmom potvrdení (acks) a správou posunov (offsets).
Hlavné mechanizmy:
-
acks — parameter producenta, ktorý určuje, koľko replík musí potvrdiť zápis správy. Hodnoty:
0— nečakať na potvrdenie (nízka spoľahlivosť)1— čakať na potvrdenie od lídraall(alebo-1) — čakať na potvrdenie od všetkých ISR (synchronizované repliky), čo zabezpečuje maximálnu spoľahlivosť
-
Opakovania a idempotentnosť — producent môže opakovať odoslanie správ pri chybách, a idempotentnosť zabraňuje duplikátom.
-
Potvrdenie posunov (offset commit) — konzument po spracovaní správ vykoná commit posunov, aby sa zabezpečilo, že správy nebudú spracované opakovane.
V praxi sa pre "minimálne raz" doručenie používa acks=all a idempotentný producent, zatiaľ čo pre "presne raz" sú potrebné ďalšie nastavenia a správa na úrovni aplikácie.
Príklad konfigurácie producenta v Go (s použitím sarama):
config := sarama.NewConfig()
config.Producer.RequiredAcks = sarama.WaitForAll
config.Producer.Idempotent = true
config.Producer.Retry.Max = 5
producer, err := sarama.NewSyncProducer(brokers, config)
Takto je mechanizmus záruky doručenia kombináciou potvrdení, replikácie a správy posunov.