Sobes.tech
Junior — Middle

Wo wird innerhalb von Kafka der Offset-Wert für konsumierte Nachrichten gespeichert?

sobes.tech KI

Antwort von AI

In Apache Kafka wird der Offset-Wert für die konsumierten Nachrichten in einem speziellen internen Topic namens __consumer_offsets gespeichert. Dieses Topic enthält Informationen über die aktuelle Position jedes Consumers (Consumer-Gruppe) in jedem Partition des Topics.

Daher speichert Kafka den Offset nicht lokal beim Client, sondern zentral im Cluster, was es den Verbrauchern ermöglicht, sich zu erholen und die Lektüre ab der gewünschten Position fortzusetzen.

Außerdem können Clients den Offset manuell (commit) oder automatisch speichern, abhängig von den Einstellungen des Consumers.

Beispiel in Go mit der Bibliothek confluent-kafka-go zum Commiten von Offsets:

consumer.CommitMessage(message)

wobei message die gelesene Nachricht ist, deren Offset gespeichert wird.