Sobes.tech
Junior — Middle

Ə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ənilir
    • all (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.