Дар кадом ҷой дар дохили Kafka арзиши Offset барои паёмҳои истеъмолшуда нигоҳ дошта мешавад?
sobes.tech AI
Ҷавоб аз AI
Apache Kafkaда, истеъмол қилинган хабарлар учун Offset қиймати __consumer_offsets номли махсус ички мавзуда сақланади. Бу мавзуда ҳар бир истеъмолчи гуруҳи (consumer group)нинг ҳар бир бўлимда (partition) ҳозирги позицияси ҳақида маълумотлар сақланади.
Шундай қилиб, Kafka offsetни мижозда маҳаллий равишда сақламайди, балки кластерда марказлаштирилган ҳолда сақлайди, бу эса истеъмолчиларга ўзларини тиклаш ва керакли позициядан ўқишни давом эттириш имконини беради.
Бундан ташқари, мижозлар offsetни қўл билан (commit) ёки автоматик равишда сақлай олишади, бу истеъмолчи созламаларидан боғлиқ.
Go тилида confluent-kafka-go кутубхонаси ёрдамида offsetларни commit қилиш мисоли:
consumer.CommitMessage(message)
бу ерда message ўқилган хабар бўлиб, унинг offsetи сақланади.