Dieser Leitfaden untersucht Offsets der Kafka Consumer Group, die für den Verfolgung des Nachrichtenverbrauchs von entscheidender Bedeutung sind. Jede Verbrauchergruppe behält einen Offset für jede Verbrauchspartition bei, die den zuletzt verarbeiteten Datensatz angibt. Dies stellt sicher, dass die Verbraucher nach dem Neustart von der richtigen Position wieder aufgenommen werden.
Ein Verbrauchsgruppenversatz ist eine einfache numerische Kennung, die die Position eines Verbrauchers innerhalb einer KAFKA -Themenpartition verfolgt. Jede Partition hat für jeden Datensatz einen sequentiellen Offset. Die Verbrauchergruppe verwendet diese Offsets, um sich daran zu erinnern, wo sie aufgehört hat. Beispielsweise hat eine Verbrauchergruppe, die von einem zweiteiligen Thema (P1 und P2) liest
Ein Beispiel für einen aktuellen Offset (Position) für eine Verbrauchergruppe 1
Kafkas interner Offset -Speicher
. Die KAFKA -Client -Bibliothek übernimmt den Offset -Speicher und -abruf und ermöglicht es den Verbrauchern, nach einem Neustart nahtlos von ihrer letzten bekannten Position wieder aufzunehmen. __consumer_offsets
-Konfiguration das Verhalten des Verbrauchers: auto.offset.reset
latest
earliest
none
). Obwohl es bequem ist, besteht der Datenverlust. enable.auto.commit
Handbuch
oder enable.auto.commit=false
nach erfolgreicher Bearbeitung von Datensätzen. Dies verhindert den Datenverlust. commitSync()
while (true) { records = consumer.poll(timeout); // process records consumer.commitSync(); // or consumer.commitAsync() }
Auto-Commit ist geeignet, wenn Ihre Anwendung:
Andernfalls wird ein manuelles Commit empfohlen.
Manuelles Commit bietet synchrone (commitSync()
) und asynchrone (commitAsync()
) Optionen. commitSync()
blockiert, bis das Commit bestätigt wird, was die Persistenz gewährleistet, sich aber auf die Leistung auswirkt. commitAsync()
ist nicht blockierend, erfordert jedoch die Behandlung potenzieller Ausnahmen.
Verbrauchergruppenausgleiche sind für einen zuverlässigen Kafka-Konsum von grundlegender Bedeutung. Während die automatische Festschreibung die Dinge vereinfacht, sorgt die manuelle Festschreibung für mehr Kontrolle und Datensicherheit. Die Wahl zwischen synchronen und asynchronen Commits hängt von den Anforderungen Ihrer Anwendung ab, wobei Leistung und Zuverlässigkeit in Einklang gebracht werden müssen. Das Verständnis dieser Mechanismen ist der Schlüssel zum Aufbau robuster und fehlertoleranter Kafka-Anwendungen.
Erwägen Sie, einen kostenlosen Kafka-Minikurs bei Coding Harbour zu erkunden.
Bildnachweis: @kencheungphoto
Das obige ist der detaillierte Inhalt vonKafka Consumer - Verschiebung der Verbrauchergruppe begehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!