Sobes.tech
Senior

Čo sú to záruky doručenia v Kafka?

sobes.tech AI

Odpoveď od AI

Záruky doručenia v Kafka opisujú, ako presne sú správy doručované od producenta k brokerovi a od brokera k spotrebiteľovi. Hlavné úrovne záruk:

  1. Maximálne raz (at most once) — správa môže byť stratená, ale nebude duplikovaná. Používa sa, keď je dôležitá rýchlosť a strata dát je akceptovateľná.

  2. Minimálne raz (at least once) — správa je garantovane doručená, ale môže byť duplikovaná. Toto je predvolený režim Kafka.

  3. Presne raz (exactly once) — správa je doručená a spracovaná presne raz, bez duplikátov. V Kafka je to dosiahnuteľné pomocou idempotentných producentov a transakcií.

Pre implementáciu exactly once v klientskych knižniciach Kafka v Go je potrebné využiť podporu pre idempotenciu a transakcie, ak knižnica túto funkciu umožňuje.

Príklad konfigurácie producenta s idempotenciou (pseudo-kód):

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