Sobes.tech
Senior

Was sind die Liefergarantien in Kafka?

sobes.tech KI

Antwort von AI

Liefergarantien in Kafka beschreiben, wie genau Nachrichten vom Producer zum Broker und vom Broker zum Consumer zugestellt werden. Die Hauptstufen der Garantien:

  1. Maximal einmal (at most once) — die Nachricht kann verloren gehen, wird aber nicht dupliziert. Wird verwendet, wenn Geschwindigkeit wichtig ist und Datenverlust akzeptabel ist.

  2. Mindestens einmal (at least once) — die Nachricht wird garantiert zugestellt, kann aber dupliziert werden. Dies ist der Standardmodus von Kafka.

  3. Genau einmal (exactly once) — die Nachricht wird genau einmal zugestellt und verarbeitet, ohne Duplikate. In Kafka wird dies durch idempotente Producer und Transaktionen erreicht.

Um exactly once in Kafka-Clients in Go zu implementieren, muss Unterstützung für Idempotenz und Transaktionen genutzt werden, falls die Bibliothek dies erlaubt.

Beispiel für die Konfiguration eines Producers mit Idempotenz (Pseudocode):

producer, _ := kafka.NewProducer(&kafka.ConfigMap{
    "bootstrap.servers": "localhost",
    "enable.idempotence": true, // garantiert exactly-once
})