Sobes.tech
Junior — Middle

Hol tárolódik az Offset értéke a Kafka-ban az fogyasztott üzenetekhez?

sobes.tech MI

Válasz az MI-től

Az Apache Kafka-ban a fogyasztott üzenetek Offset értéke egy speciális belső témában, a __consumer_offsets-ben kerül tárolásra. Ez a téma tartalmazza az egyes fogyasztói csoportok (consumer group) aktuális pozícióját minden partícióban.

Így Kafka nem helyben, a kliensnél tárolja az offsetet, hanem központilag a klaszterben, ami lehetővé teszi a fogyasztók számára, hogy helyreálljanak és folytassák az olvasást a szükséges pozíciótól.

Ezenkívül a kliensek manuálisan (commit) vagy automatikusan menthetik az offsetet, a fogyasztó beállításaitól függően.

Példa Go nyelven a confluent-kafka-go könyvtár használatával az offsetek commitálására:

consumer.CommitMessage(message)

ahol a message az olvasott üzenet, amelynek offsetje mentésre kerül.