Üstel geri çekilme (üstel geri çekilme)

Üstel geri çekilme, yeniden denemeleri her seferinde gecikmeyi ikiye katlayarak — 0,5 sn, 1 sn, 2 sn, 4 sn — bir üst sınıra kadar aralar ve zorlanan bir sunucuya toparlanma payı bırakır. Jitter her gecikmeyi rastgeleleştirir; çünkü o olmadan aynı anda başarısız olan her istemci aynı anda yeniden dener ve hataya yol açan sıçramayı yeniden oluşturur.

Nasıl çalışır

Tipik bir politika: sıfır ile taban × 2^deneme arasında rastgele bir süre bekle, bunu bir üst sınırla kes ve belirli sayıda denemeden ya da toplam süreden sonra vazgeç. Yalnızca yeniden denemesi güvenli olanı — idempotent metotları ya da bir idempotency anahtarıyla korunan yazmaları — ve yalnızca geçici olabilecek hataları yeniden dene: zaman aşımları, 429, 502, 503, 504.

Yaygın yanılgı

Daha çok yeniden denemenin daha çok güvenilirlik demek olduğu sanılır. Sınırsız yeniden denemeler bir kesintiyi büyütür: üç kez yeniden deneyen her katman altındaki katmanın yükünü katlar. Yeniden deneme bütçeleri, üst sınırlar ve devre kesiciler, yeniden denemenin kendisi de bir hata kaynağı olduğu için vardır.

Burada deneyin

Fault Injection API’sini PUT /faults/v1/config ile yapılandırın — örneğin failureRate 0.5 ve status 503 — sonra yeniden deneme politikanızın titrek bir bağımlılıkla nasıl başa çıktığını görmek için GET /faults/v1/target’ı tekrar tekrar çağırın.

İlgili

Kaynaklar

Diğer terimler

Bu sayfayı İngilizce okuyun

Tüm sözlük maddeleri · Test teknikleri · 39 mock REST API’nin tamamı

Son güncelleme