Sobes.tech
Junior — Middle

Kafka'da bir mesajın okunduğu nasıl belirlenir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kafka'da bir mesajın okunduğu durumu, konu bölümlerindeki (partitions) kaydırmalar (offsets) ile belirlenir. Her tüketici (consumer), her bölümde hangi kaydırmaya kadar okunduğunu takip eder.

Bir mesajın okunduğunu belirlemek için:

  • Tüketicinin mesajı başarıyla işlediğinden emin olun.
  • Bu mesajın kaydırmasını Kafka'da onaylayın (commit), yani broker'a tüm mesajların bu kaydırmaya kadar işlendiğini bildirin.

Go'da, Kafka istemcisi (örneğin, sarama veya confluent-kafka-go) kullanarak, mesajlar işlendiğinde kaydırmaları açıkça onaylayabilirsiniz. Kaydırma onaylandıysa, mesaj okunmuş sayılır ve tekrar bu tüketiciye teslim edilmez.

Örnek sarama ile (basitleştirilmiş):

consumer.MarkMessage(msg, "") // Mesajı okundu olarak işaretle
consumer.CommitOffsets()       // Kaydırmaları onayla

Bu şekilde, mesajın okunması durumu, Kafka'da başarılı bir kaydırma onayıdır.