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.