Welke berichtbezorgingsgarantiemechanisme werd gebruikt in Kafka op uw vorige werk?
sobes.tech AI
Antwoord van AI
In Kafka worden garanties voor het afleveren van berichten verzekerd door de configuratie van de producent- en consumentparameters, evenals door het bevestigingsmechanisme (acks) en het beheer van offsets.
Belangrijkste mechanismen:
-
acks — parameter van de producer die bepaalt hoeveel replica's de schrijfactie moeten bevestigen. Waarden:
0— geen bevestiging afwachten (lage betrouwbaarheid)1— bevestiging van de leider afwachtenall(of-1) — bevestiging van alle ISR (in-sync replicas), wat maximale betrouwbaarheid garandeert
-
Retries en idempotentie — de producer kan berichten opnieuw proberen te sturen bij fouten, en idempotentie voorkomt duplicaten.
-
Offset commit — de consumer commit de offsets na het verwerken van berichten, om te voorkomen dat berichten opnieuw worden verwerkt.
In de praktijk wordt voor "minimaal één keer" levering acks=all en een idempotente producer gebruikt, en voor "precies één keer" worden extra instellingen en applicatielogica toegepast.
Voorbeeld van producerconfiguratie in Go (met sarama):
config := sarama.NewConfig()
config.Producer.RequiredAcks = sarama.WaitForAll
config.Producer.Idempotent = true
config.Producer.Retry.Max = 5
producer, err := sarama.NewSyncProducer(brokers, config)
Zo is het leveringsgarantiesysteem een combinatie van bevestigingen, replicatie en offsetbeheer.