Sobes.tech
Junior — Middle

Kafka'da xabarlarni qayta ishlashni tasdiqlash jarayoni qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

Apache Kafka'da xabarlarni qayta ishlashni tasdiqlash (acknowledgment) offset commit mexanizmi orqali amalga oshiriladi.

Jarayon:

  1. Konsumer topikdan xabar oladi.
  2. Xabar muvaffaqiyatli qayta ishlangandan so'ng, konsumer bu xabarning offsetini yozib qo'yadi (commit qiladi).
  3. Kafka har bir konsumer guruh uchun oxirgi tasdiqlangan offset haqida ma'lumot saqlaydi.

Go tilida, Kafka mijozidan (masalan, sarama yoki confluent-kafka-go) foydalanishda, tasdiqlash avtomatik yoki qo'lda bo'lishi mumkin:

  • Avtomatik commit — mijoz doimiy ravishda oxirgi qayta ishlangan offset haqida ma'lumot yuboradi.
  • Qo'lda commit — dasturchi xabarni qayta ishlashdan so'ng aniq commit metodini chaqiradi, bu esa ko'proq nazorat va ishonchlilikni ta'minlaydi.

Sarama bilan misol (qo'lda commit):

consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// Xabarlarni qayta ishlashda, qayta ishlashdan so'ng:
session.MarkMessage(message, "") // xabarni qayta ishlangan sifatida belgilaydi
// Qayta ishlash tugagach, Commit() chaqiriladi