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.