Junior — Middle
Kafka'da mesaj işleme onayı nasıl gerçekleştirilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Apache Kafka'da mesaj işleme onayı (acknowledgment), offset commit mekanizmasıyla gerçekleştirilir.
İşlem:
- Tüketici, konu (topic) içinden bir mesaj alır.
- Mesaj başarıyla işlendiğinde, tüketici bu mesajın ofsetini (offset) kaydeder (commit eder).
- Kafka, her tüketici grubu için son onaylanan ofset bilgilerini saklar.
Go dilinde, Kafka istemcisi (örneğin, sarama veya confluent-kafka-go) kullanırken, onaylama otomatik veya manuel olabilir:
- Otomatik commit — istemci, periyodik olarak işlenen en son ofset bilgisi gönderir.
- Manuel commit — geliştirici, mesaj işlendiğinde açıkça commit metodunu çağırır, bu da daha fazla kontrol ve güvenilirlik sağlar.
Örnek sarama ile (manuel commit):
consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// Mesaj işleyicisinde, işlem sonrası:
session.MarkMessage(message, "") // mesajı işlendi olarak işaretler
// İşlem tamamlandıktan sonra Commit() çağrılır