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:
- İstifadəçi topikdən mesaj alır.
- Uğurlu işləmədən sonra istifadəçi bu mesajın offsetini qeyd edir (commit edir).
- 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