Sobes.tech
Junior — Middle

Kafka-da mesajların işlənməsinin təsdiqi prosesi necə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Apache Kafka-da mesajların işlənməsinin təsdiqi (acknowledgment) offset commit mexanizmi vasitəsilə həyata keçirilir.

Proses:

  1. İstifadəçi topikdən mesaj alır.
  2. Uğurlu işləmədən sonra istifadəçi bu mesajın offsetini qeyd edir (commit edir).
  3. Kafka hər bir istifadəçi qrup üçün ən son təsdiqlənmiş offset haqqında məlumat saxlayır.

Go dilində, Kafka müştərisindən (məsələn, sarama və ya confluent-kafka-go) istifadə edərkən, təsdiqləmə avtomatik və ya əl ilə ola bilər:

  • Avtomatik commit — müştəri periodik olaraq ən son işlənmiş offset haqqında məlumat göndərir.
  • Əl ilə commit — proqramçı mesaj işlənəndən sonra açıq şəkildə commit metodunu çağırır, bu da daha çox nəzarət və etibarlılıq təmin edir.

Sarama ilə nümunə (əl ilə commit):

consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// Mesajların işlənməsində, işləmə sonrası:
session.MarkMessage(message, "") // mesajı işlənmiş kimi işarə edir
// İşləmə tamamlandıqdan sonra Commit() çağırılır