Sobes.tech
Senior

Kafka-da çatdırılma zəmanətləri nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Kafka-da çatdırılma zəmanətləri, mesajların dəqiq necə çatdırıldığını təsvir edir, yəni istehsalçidən brokera və brokerdan istehlakçıya necə çatdırılır. Əsas zəmanət səviyyələri:

  1. Ən çox bir dəfə (at most once) — mesaj itə bilər, lakin təkrarlanmayacaq. Sürət vacibdirsə və məlumat itkisi qəbul edilə bilərsə istifadə olunur.

  2. Ən az bir dəfə (at least once) — mesaj zəmanətlə çatdırılır, lakin təkrarlana bilər. Bu, Kafka-nın standart işləmə rejimidir.

  3. Tam olaraq bir dəfə (exactly once) — mesaj tam olaraq bir dəfə çatdırılır və işlənir, təkrarlamalar olmadan. Kafka-da bu, idempotent istehsalçılar və tranzaksiyalar vasitəsilə əldə edilir.

Go müştərilərində tam olaraq bir dəfə həyata keçirmək üçün, kitabxana imkan verərsə, idempotentlik və tranzaksiyalardan istifadə edilməlidir.

Idempotentlik ilə konfiqurasiya nümunəsi (sözsüz kod):

producer, _ := kafka.NewProducer(&kafka.ConfigMap{
    "bootstrap.servers": "localhost",
    "enable.idempotence": true, // tam olaraq bir dəfə zəmanət verir
})