Sobes.tech
Junior — Middle

Ի՞նչ տեղում է Kafka-ի ներսում պահվում է սպառված հաղորդագրությունների Offset արժեքը:

sobes.tech AI

Պատասխան AI-ից

Apache Kafka- ում, սպառված հաղորդագրությունների Offset արժեքը պահվում է հատուկ ներքին թեմայում՝ __consumer_offsets։ Այս թեման պահում է տեղեկություններ յուրաքանչյուր սպառողի (consumer group) ներկայիս դիրքի մասին յուրաքանչյուր բաժանմունքում (partition)։

Այսպիսով, Kafka-ն չի պահում offset-ը տեղականորեն հաճախորդի մոտ, այլ կենտրոնական կերպով՝ խմբի մեջ, ինչը թույլ է տալիս սպառողներին վերականգնվել և շարունակել ընթերցումը անհրաժեշտ դիրքից։

Բացի այդ, հաճախորդները կարող են ձեռքով (commit) կամ ավտոմատ կերպով պահել offset-ը՝ կախված սպառողի կարգավորումներից։

Օրինակ Go լեզվով՝ օգտագործելով confluent-kafka-go գրադարանը՝ offset-ների commit անելու համար՝

consumer.CommitMessage(message)

որտեղ message-ն է կարդացած հաղորդագրությունը, որի offset-ը կպահվի։