Junior — Middle
როგორ შეიძლება დადგინდეს Kafka-ში შეტყობინების წაკითხვა?
sobes.tech AI
პასუხი AI-სგან
Kafka-ში შეტყობინების წაკითხვის ფაქტი განსაზღვრულია თემის ნაწილებში (partitions) განთავსებული გადახვევებით (offsets). ყოველი მომხმარებელი (consumer) აკონტროლებს, რომელი გადახვევა აქვს წაკითხული თითოეულ ნაწილში.
შეიძლება განსაზღვრო, რომ შეტყობინება წაკითხულია, თუ:
- დარწმუნებული ხარ, რომ მომხმარებელმა წარმატებით დაამუშავა შეტყობინება.
- ამ შეტყობინების გადახვევა დაადასტურო (commit) Kafka-ში, ანუ broker-ს აცნობო, რომ ყველა შეტყობინება ამ გადახვევამდე დამუშავებულია.
Go-ში, Kafka-ის კლიენტის (მაგალითად, sarama ან confluent-kafka-go) გამოყენებით, შეგიძლია პირდაპირ დაადასტურო გადახვევა შეტყობინებების დამუშავების შემდეგ. თუ გადახვევა დადასტურებულია, ის მიიჩნევა წაკითხულად და ეს მომხმარებელი მას ხელახლა არ მიეწოდება.
მაგალითი sarama-სთან (სადავიწრო):
consumer.MarkMessage(msg, "") // შეტყობინების წაკითხულად მონიშვნა
consumer.CommitOffsets() // გადახვევების დადასტურება
ამ გზით, რომ შეტყობინება წაკითხულია, ეს არის წარმატებული გადახვევის დადასტურება Kafka-ში.