Mi a Kafka szállítási garanciái?
sobes.tech MI
Válasz az MI-től
A Kafka szállítási garanciái pontosan leírják, hogyan történik az üzenetek kézbesítése a producer-tól a broker-ig és a broker-tól a fogyasztóig. A fő garancia szintek:
-
Legfeljebb egyszer (at most once) — az üzenet elveszhet, de nem duplikálódik. Akkor használjuk, ha a sebesség fontos, és elfogadható az adatvesztés.
-
Legalább egyszer (at least once) — az üzenet garantáltan kézbesítésre kerül, de duplikálódhat. Ez a Kafka alapértelmezett működési módja.
-
Pontosan egyszer (exactly once) — az üzenet pontosan egyszer kerül kézbesítésre és feldolgozásra, duplikátum nélkül. Kafka-ban ezt idempotens producer-ek és tranzakciók segítségével érik el.
A Go Kafka klienseknél az exactly once megvalósításához támogatni kell az idempotenciát és a tranzakciókat, ha a könyvtár lehetővé teszi.
Idempotens producer konfigurációs példa (szó szerinti kód):
producer, _ := kafka.NewProducer(&kafka.ConfigMap{
"bootstrap.servers": "localhost",
"enable.idempotence": true, // garantálja az egyszeri kézbesítést
})