Waar wordt de Offset-waarde voor verbruikte berichten binnen Kafka opgeslagen?
sobes.tech AI
Antwoord van AI
In Apache Kafka wordt de Offset-waarde voor de verbruikte berichten opgeslagen in een speciaal intern topic genaamd __consumer_offsets. Dit topic bevat informatie over de huidige positie van elke consument (consumentengroep) in elke partition van het topic.
Op deze manier slaat Kafka de offset niet lokaal op de client op, maar centraal in de cluster, waardoor consumenten zich kunnen herstellen en verder kunnen lezen vanaf de benodigde positie.
Daarnaast kunnen clients de offset handmatig (commit) of automatisch opslaan, afhankelijk van de instellingen van de consument.
Voorbeeld in Go met de confluent-kafka-go bibliotheek voor het committen van offsets:
consumer.CommitMessage(message)
waar message het gelezen bericht is, waarvan de offset wordt opgeslagen.