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-ը կպահվի։