FDE Foundations · Modül 4: Yazılım Zanaatı
Hatalar, Idempotency ve Yeniden Denemeler
Dağıtık sistemler sürekli kırılır ve sorun değil: her hata iki kovadan birine düşerse. Yeniden denemeyi güvenli yapan idempotency anahtarlarıdır.
12 dk okuma
Kazanımlar
- Hataları yeniden denenebilir ya da kalıcı olarak sınıflandırmak
- Her yazım için idempotency anahtarı kullanmak
- Geri çekilmeli yeniden deneme ve ölü mektup yolu tasarlamak
İki kova
Her hatayı sınıflandır: geçici (ağ titremesi, 503, zaman aşımı) yeniden dene demektir; kalıcı (doğrulama hatası, 422, kayıt yok) yükü ve bağlamıyla park etmek demektir. Kalıcıları yeniden denemek kota yakar ve gerçek sorunları gizler; geçicileri park etmek veri kaybettirir. Birini öbürüyle karıştırmak, hattaki hataların köküdür.
Idempotency anahtarları
Her yazım işlemi istemci üretimli bir idempotency anahtarı alır: sipariş kimliği artı adım, olay kimliği ya da içerik hash'i. İşlem zaman aşımından sonra yeniden koşarsa anahtar, ikinci koşuyu kopya yerine no-op yapar. Bu tek alışkanlık, sabah üç olaylarının bütün bir sınıfını kaldırır: çift işlenmiş faturalar.
Geri çekilme ve sınırlar
Üstel geri çekilme ve jitter ile yeniden dene, deneme sayısını sınırla ve hedefte devre kesici kullan. Zorlanan bir servisi sıkı döngüde yeniden denemek, kötü gününü kesintiye çevirir.
Ölü mektuplar
Kalıcı başarısızlıklar, özgün yükü, hatayı ve deneme sayısıyla birlikte karantina deposuna gider. Kimsenin incelemediği ölü mektup kuyruğu, daha iyi markalanmış bir veri kaybı kuyruğudur; incelemesini ilk günden çalışma kılavuzuna koy.
Mini kontrol
2-3 soruluk isteğe bağlı öz kontrol. Yanıtlar cihazından çıkmaz, saklanmaz ve hiçbir değerlendirmeye sayılmaz.
Alıştırma
Kurgusal bir eşitleme işine yeniden deneme tasarımı ekleyin: beş örnek hatayı yeniden denenebilir ya da kalıcı olarak sınıflandırın, idempotency anahtarını tanımlayın ve geri çekilme, deneme üst sınırı ile ölü mektup kayıt alanlarını belirtin.
Geçme kriterleri
Beş hata gerekçeleriyle doğru sınıflandırılmış, somut bir anahtar formülü, jitterli sınırlı geri çekilme ve sonradan yeniden işlemeye izin veren ölü mektup alanları bulunmalıdır.