Əvvəlki iş yerinizdə Kafka-da hansı mesaj çatdırılma zəmanət mexanizmi istifadə olunurdu?
sobes.tech Süni İntellekt
AI-dan cavab
Kafka-da mesajların çatdırılma zəmanətləri, istehsalçı və istehlakçı parametrlərinin konfiqurasiyası, eləcə də təsdiqləmə (acks) mexanizmi və ofsetlərin idarə olunması ilə təmin edilir.
Əsas mexanizmlər:
-
acks — istehsalçının parametridir və neçə replikanın mesajın qeydini təsdiqləməli olduğunu müəyyən edir. Dəyərlər:
0— təsdiqləmə gözlənilmir (aşağı etibarlılıq)1— liderdən təsdiqləmə gözlənilirall(və ya-1) — bütün ISR (sinxron replikalar) təsdiqləməsini gözləyir, bu isə maksimum etibarlılığı təmin edir
-
Yenidən cəhdlər və idempotentlik — istehsalçı səhvlər zamanı mesajların təkrar göndərə bilər və idempotentlik təkrarlananları qarşısını alır.
-
Ofsetlərin təsdiqlənməsi (offset commit) — istehlakçı, mesajları işlədikdən sonra ofsetləri təsdiqləyir ki, mesajlar təkrar işlənməsin.
Praktikada, "ən az bir dəfə" çatdırılma üçün acks=all və idempotent istehsalçı istifadə olunur, və "tam olaraq bir dəfə" üçün əlavə parametrlər və tətbiq səviyyəsində idarəetmə həyata keçirilir.
Go dilində sarama ilə istehsalçı konfiqurasiyasına nümunə:
config := sarama.NewConfig()
config.Producer.RequiredAcks = sarama.WaitForAll
config.Producer.Idempotent = true
config.Producer.Retry.Max = 5
producer, err := sarama.NewSyncProducer(brokers, config)
Beləliklə, çatdırılma zəmanət mexanizmi təsdiqlər, replikasiya və ofsetlərin idarə olunmasının birləşməsidir.