Sobes.tech
Junior — Middle

Kde sa v rámci Kafka uchováva hodnota Offset pre spracované správy?

sobes.tech AI

Odpoveď od AI

V Apache Kafka hodnotu Offset pre spracovaných správ ukladá do špeciálneho interného tématu s názvom __consumer_offsets. Toto téma uchováva informácie o aktuálnej pozícii každej skupiny spotrebiteľov (consumer group) v každej časti (partition) témy.

Týmto spôsobom Kafka neukladá offset lokálne na klientovi, ale centralizovane v klastre, čo umožňuje spotrebiteľom zotaviť sa a pokračovať v čítaní od požadovanej pozície.

Okrem toho môžu klienti ukladať offset manuálne (commit) alebo automaticky, v závislosti od nastavení spotrebiteľa.

Príklad v Go s knižnicou confluent-kafka-go na commitovanie offsetov:

consumer.CommitMessage(message)

kde message je prečítaná správa, ktorej offset bude uložený.