Sobes.tech
Senior

Kas ir piegādes garantijas Kafka?

sobes.tech AI

Atbilde no AI

Kafka piegādes garantijas apraksta, kā tieši ziņojumi tiek piegādāti no ražotāja uz brokeri un no brokera uz patērētāju. Galvenie garantijas līmeņi:

  1. Visvairāk vienu reizi (at most once) — ziņojums var tikt zaudēts, bet netiks dublēts. Izmanto, ja ir svarīga ātrums un datu zudums ir pieņemams.

  2. Vismaz vienu reizi (at least once) — ziņojums ir garantēti piegādāts, bet var tikt dublēts. Šis ir Kafka noklusējuma režīms.

  3. Tieši vienu reizi (exactly once) — ziņojums tiek piegādāts un apstrādāts tieši vienu reizi, bez dublējumiem. Kafka to sasniedz ar idempotentiem ražotājiem un transakcijām.

Lai īstenotu exactly once Go klientos Kafka, ir jāizmanto atbalsts idempotencei un transakcijām, ja bibliotēka to atļauj.

Piemērs konfigurācijai ar idempotencei (pseido-kods):

producer, _ := kafka.NewProducer(&kafka.ConfigMap{
    "bootstrap.servers": "localhost",
    "enable.idempotence": true, // garantē tieši vienu reizi
})