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:
- Konsumer topikdan xabar oladi.
- Xabar muvaffaqiyatli qayta ishlangandan so'ng, konsumer bu xabarning offsetini yozib qo'yadi (commit qiladi).
- 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