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ý.