Heim > Java > javaLernprogramm > Kafka Consumer - Verschiebung der Verbrauchergruppe begehen

Kafka Consumer - Verschiebung der Verbrauchergruppe begehen

DDD
Freigeben: 2025-01-26 20:11:10
Original
995 Leute haben es durchsucht

Verständnis der Kafka Consumer Group Offsets: Ein umfassender Leitfaden

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.

Was sind Verbrauchergruppen -Offsets?

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

Kafka Consumer – Committing consumer group offset Ein Beispiel für einen aktuellen Offset (Position) für eine Verbrauchergruppe 1

Offset -Speicher: Kafka vs. externe Systeme

Offset -Speicher kann auf zwei Arten behandelt werden: innerhalb von Kafka selbst oder in einem externen System (Datenbank oder Datei). Dieser Artikel konzentriert sich auf den internen Offset -Speichermechanismus von Kafka.

Kafkas interner Offset -Speicher

Kafka speichert Offsets in einem speziellen internen Thema namens

. 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

Umgang mit fehlenden Offsets

Wenn für einen Verbraucher kein Offset gefunden wird, bestimmt die

-Konfiguration das Verhalten des Verbrauchers: auto.offset.reset

  • (Standard): Der Verbraucher beginnt am Ende des Themas und ignoriert vorhandene Nachrichten. latest
  • : Der Verbraucher beginnt vom Beginn des Themas und verarbeitet alle verfügbaren Nachrichten. earliest
  • : Eine Ausnahme wird ausgelöst, wenn kein Offset gefunden wird. none
Auto-Commit vs. Manual Commit

Auto-Commit vereinfacht das Offset-Management durch regelmäßige Verpflichtung von Offsets für Kafka. Dies tritt standardmäßig alle 5 Sekunden automatisch auf (gesteuert von

). Obwohl es bequem ist, besteht der Datenverlust. enable.auto.commit

Auto-Commit-Nachteile

Da auto-commit in einem separaten Thread arbeitet, verfolgt es keine Verarbeitung des Flucht-Datensatzes. Wenn ein Verbraucher vor Abschluss der Verarbeitung mehrere Datensätze und automatische Kommunikation abfragt, kann der Datenverlust nach dem Ausfall auftreten.

Handbuch

Manuelles Commit bietet eine präzise Kontrolle. Durch die Deaktivierung von Auto-Commit (

) begehen Sie Offsets mithilfe von

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()
}
Nach dem Login kopieren

Wann Auto-Commit verwendet werden sollte

Auto-Commit ist geeignet, wenn Ihre Anwendung:

  • Toleriert gelegentliche Datenneuverarbeitung (idempotente Vorgänge).
  • Kann den Verlust einiger Nachrichten verkraften.

Andernfalls wird ein manuelles Commit empfohlen.

Synchronische vs. asynchrone Commits

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.

Fazit

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.

Erfahren Sie mehr über Kafka

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage