Milline mehanism Kafka-s sõnumite kohaletoimetamise garantii kasutati teie eelmisel töökohal?
sobes.tech AI
Vastus AI-lt
Kafka-s sõnumite kohaletoimetamise garantiid tagatakse seadistuste kaudu, mis on seotud tootja ja tarbija parameetritega, ning kinnitamise (acks) mehhanismi ja nihkude (offsets) haldamisega.
Peamised mehhanismid:
-
acks — tootja parameeter, mis määrab, mitu replika peab kinnitama sõnumi kirje. Väärtused:
0— ei oota kinnitust (madal usaldusväärsus)1— oodata juhtpositsiooni kinnitustall(või-1) — oodata kõigi ISR (sünkroniseeritud replika) kinnitust, mis tagab maksimaalse usaldusväärsuse
-
Korduskatsetused ja idempotentsus — tootja võib sõnumeid uuesti saata vigade korral, ning idempotentsus väldib duplikaate.
-
Nihkude kinnitamine (offset commit) — tarbija pärast sõnumite töötlemist teeb nihkude kinnituse, et tagada, et sõnumeid ei töödelda uuesti.
Praktikas kasutatakse "vähemalt üks kord" garantii jaoks acks=all ja idempotentset tootjat, ning "täpselt üks kord" jaoks täiendavaid seadistusi ja rakendustasandi haldust.
Näide tootja konfiguratsioonist Go keeles (sarama kasutades):
config := sarama.NewConfig()
config.Producer.RequiredAcks = sarama.WaitForAll
config.Producer.Idempotent = true
config.Producer.Retry.Max = 5
producer, err := sarama.NewSyncProducer(brokers, config)
Seega on kohaletoimetamise garantii mehhanism kombinatsioon kinnitustest, replikatsioonist ja nihkude haldamisest.