Sobes.tech
Junior — Middle

Önceki işinizde Kafka'da hangi mesaj teslim garantisi mekanizması kullanıldı?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kafka'da mesaj teslim garantileri, üretici ve tüketici ayarlarının yanı sıra onay mekanizması (acks) ve kaydırma (offsets) yönetimi ile sağlanır.

Ana mekanizmalar:

  • acks — üretici parametresi, kaç replikanın mesaj kaydını onaylaması gerektiğini belirler. Değerler:

    • 0 — onay beklenmez (düşük güvenilirlik)
    • 1 — liderden onay beklenir
    • all (veya -1) — tüm ISR (eşzamanlı replikalar) onayı beklenir, bu da maksimum güvenilirliği sağlar
  • Yeniden deneme ve idempotans — üretici, hatalarda mesajları tekrar gönderebilir ve idempotans, yinelenenleri önler.

  • Kaydırma (offset) onayı — tüketici, mesajları işledikten sonra kaydırmaları onaylar, böylece mesajların tekrar işlenmesini önler.

Pratikte, "en az bir kez" teslimat garantisi için acks=all ve idempotent üretici kullanılır, "tam olarak bir kez" için ek ayarlar ve uygulama seviyesinde yönetim yapılır.

Go dilinde sarama kullanarak üretici ayarına örnek:

config := sarama.NewConfig()
config.Producer.RequiredAcks = sarama.WaitForAll
config.Producer.Idempotent = true
config.Producer.Retry.Max = 5
producer, err := sarama.NewSyncProducer(brokers, config)

Bu şekilde, teslimat garantisi mekanizması onaylar, çoğaltma ve kaydırma yönetiminin bir kombinasyonudur.