Retry, Timeout ve Circuit Breaker: Guvenilirlik Playbook'u
Dayaniklilik mekanizmalari bagimsiz ayarlaninca beklenenin tersine outage'i buyutebilir. Sinirsiz retry, uzun timeout ve pasif circuit breaker birlikte kullanildiginda sistem uzerindeki baski artar.
Bu uc bileşeni tek bir kontrol sistemi gibi dusunmek gerekir.
Once timeout butcesi
Uctan uca istek SLO'sundan baslayin ve butceyi downstream cagrilara paylastirin. Retry denemeleri bu toplam butcenin icinde kalmalidir.
Guvenli retry politikasi
- Sadece gecici hatalarda tekrar deneyin
- Exponential backoff + jitter kullanin
- Maksimum deneme sayisi ve toplam retry suresi siniri koyun
- Non-idempotent islemleri korumasiz sekilde tekrar etmeyin
Circuit breaker gorevi
Sistematik hata aninda bagimliliklari korur:
- Closed: normal akis
- Open: hizli hata don
- Half-open: sinirli test trafigi
Kacinilmasi gereken model
Tum servisler ayni anda agresif retry yaparsa retry storm olusur ve kuyruklar siserek toparlanmayi geciktirir. Retry budget yaklaşımı bu riski azaltir.
Sonuc
Guvenilirlik; retry, timeout ve circuit breaker ayarlarinin birlikte tasarlanmasi, olculmesi ve trafik gercegiyle duzenli kalibre edilmesiyle artar.
İlgili Yazılar
Outbox Pattern ve CDC ile Event-Driven Tutarlilik
Veritabani yazimi ile event yayininin tutarliligini transactional outbox, CDC ve idempotent consumer desenleriyle guvenli hale getirme rehberi.
Go'da Context, Timeout ve Cancellation: Production Dayanıklılık Rehberi
Go servislerinde context propagation, timeout yönetimi, cancellation zinciri ve graceful shutdown pratiklerini gerçek üretim senaryolarıyla anlatan detaylı rehber.