Sobes.tech
Junior — Middle

Kafka-da mesajın oxunduğu faktını necə müəyyən etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Kafka-da mesajın oxunduğu faktı, mövzunun partitionlarındakı (offsetlar) vasitəsilə müəyyən edilir. Hər bir consumer (istifadəçi) hər partitionda oxuduğu offseti izləyir.

Bir mesajın oxunduğunu müəyyən etmək üçün:

  • İstifadəçinin mesajı uğurla işlədiyindən əmin olun.
  • Bu mesajın offsetini Kafka-da təsdiqləyin (commit), yəni brokerə bildirin ki, bütün mesajlar bu offsetə qədər işlənib.

Go-da, Kafka müştərisindən (məsələn, sarama və ya confluent-kafka-go) istifadə edərək, mesajlar işlənəndən sonra offsetləri açıq şəkildə təsdiqləmək mümkündür. Əgər offset təsdiqlənibsə, mesaj oxunmuş sayılır və bu istifadəçiyə yenidən çatdırılmayacaq.

Misal üçün, sarama ilə (sadələşdirilmiş):

consumer.MarkMessage(msg, "") // Mesajı oxundu kimi işarə et
consumer.CommitOffsets()       // Offsetləri təsdiqlə

Beləliklə, mesajın oxunduğu faktı, Kafka-da uğurlu offset təsdiqləməsidir.