7.2. Koruma Desenleri
Koruma desenleri, başarısız olan bir bağımlılığın çağıranı çökertmesini engeller. Bir circuit breaker, ölü bir servisi dövmeyi durdurur ve ona toparlanma alanı verir; bir bulkhead, kaynakları izole eder ki yavaş bir bağımlılık her thread’i tüketemesin; backoff ve jitter’lı bir retry, bir fırtınaya senkronize olmadan geçici hatalardan kurtulur. Bu bölüm, her desenin durum makinesini ve hata modlarını, hepsinin temelini oluşturan zaman aşımı yapılandırmasını ve korumanın tamamen başarısız olmak yerine zarifçe düşmek anlamına geldiği durumlar için fallback stratejilerini kapsar.
İncelenen Konular
Section titled “İncelenen Konular”- 7.2.1. Circuit Breaker: Kapalı’dan Açık’a ve Yarı Açık’a Döngüsü: Başarısız bir bağımlılığı dövmeyi durduran circuit breaker’ın kapalı, açık ve yarı açık durumlarını kapsar.
- 7.2.2. Bulkhead Deseni: Thread Pool ve Semafor İzolasyonu: Kaynakları izole ederek yavaş bir bağımlılığın her thread’i tüketmesini engelleyen bulkhead desenini açıklar.
- 7.2.3. Üstel Geri Çekilme ve Jitter ile Yeniden Deneme: Geçici hatalardan senkronize olmadan kurtulmak için üstel backoff ve jitter’lı yeniden denemeyi kapsar.
- 7.2.4. Zaman Aşımları: Yapılandırması Neden Bu Kadar Zor: Zaman aşımlarının neden yapılandırılmasının bu kadar zor olduğunu ve deadline yayılımının neden sıçrama-başına zaman aşımlarını yendiğini açıklar.
- 7.2.5. Fallback Stratejileri: Düşürülmüş Servis, Önbelleğe Alınmış Yanıt: Bir bağımlılık kullanılamadığında düşürülmüş servis ve önbelleğe alınmış yanıtlar gibi fallback stratejilerini kapsar.
- 7.2.6. Hystrix’ten Resilience4j’ye: Kütüphane Karşılaştırması: Hystrix ve Resilience4j’yi ve thread-pool izolasyonundan hafif fonksiyonel dekoratörlere geçişi karşılaştırır.