Sobes.tech
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.