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