İçeriğe geçin

Yeniden denemede rastgele gecikme

Retry jitter, bekleme sürelerini rastgele değiştirerek birçok istemcinin aynı anda yeniden istek göndermesini azaltır.

Diğer adlarıRetry jitter
API ve entegrasyon

Retry jitter, yeniden çağrı yapmadan önceki bekleme süresine rastgelelik eklenmesidir. Birden fazla istemcinin denemelerini zamana yayar. Özellikle birçok istemci aynı kesintiyi birlikte fark ettiğinde işe yarar: Hepsinin aynı süre beklemesi, bir sonraki yük dalgasını yalnızca erteleyebilir.

Üç istemci, farklı beklemeler

Kurgusal bir örnekte üç istemcinin her biri, sonraki denemeden önce 0–2 s aralığında rastgele bir süre seçebilir. Örneğin 0.4 s, 1.1 s ve 1.7 s beklerler. Bu değerler dağılımı açıklamak içindir; önerilen bir yapılandırma değildir. Rastgele gecikme kullanılsa da denemeler çakışabilir.

Hangi hatalarda tekrar deneneceği, kaç denemeye izin verileceği ve toplam sürenin ne zaman biteceği yeniden deneme stratejisinin parçasıdır. Hedef sistemin bekleme süresi talimatları dikkate alınmalıdır. Üstel geri çekilmede bekleme aralığı yeni denemelerle genellikle belirlenmiş bir üst sınıra kadar büyür; jitter ise kullanılan kurala göre seçilen gerçek beklemeyi değiştirir.

Rastgelelik, işlemi tekrar yapmayı güvenli hâle getirmez. Kaybolan bir yanıtın arkasında tamamlanmış bir yazma işlemi olabilir. Bu nedenle entegrasyonun sonraki denemeden önce idempotans veya sonuç karşılaştırması gibi güvenli bir tekrar kuralına ihtiyacı vardır.

Kaynaklar

Bu konudaki yazılar

ASES ile API ve entegrasyon

ERP, CRM ve mağaza sorunsuz bağlantılı