Junior — Middle
Kde uvnitř Kafka je uložená hodnota Offset pro konzumované zprávy?
sobes.tech AI
Odpověď od AI
V Apache Kafka je hodnota Offset pro zpracované zprávy uložena ve speciálním interním tématu nazvaném __consumer_offsets. Toto téma uchovává informace o aktuální pozici každé spotřebitelské skupiny (consumer group) v každé části (partition) tématu.
Tím pádem Kafka neukládá offset lokálně na klientovi, ale centrálně v clusteru, což umožňuje spotřebitelům se zotavit a pokračovat ve čtení od požadované pozice.
Kromě toho mohou klienti ukládat offset ručně (commit) nebo automaticky, v závislosti na nastavení spotřebitele.
Příklad v Go s knihovnou confluent-kafka-go pro commitování offsetů:
consumer.CommitMessage(message)
kde message je přečtená zpráva, jejíž offset bude uložen.