İçeriğe geçin

Circuit breaker

Circuit breaker, arızalı hizmete yapılan çağrıları keser; daha sonra sınırlı deneme çağrılarıyla toparlanmayı kontrol eder.

API ve veri sözleşmeleri

Circuit breaker, uygulamanın arızalı bir bağımlı hizmeti sürekli çağırmasını sınırlayan koruma mekanizmasıdır. Belirlenmiş hata türlerini değerlendirerek yeni çağrıların iletilip iletilmeyeceğine karar verir. Belirli bir bekleme aşamasından sonra sınırlı deneme çağrılarıyla hizmetin toparlanması kontrol edilebilir.

Üç durum, farklı çağrı izinleri

closed durumunda çağrılar normal şekilde geçer. open durumunda ilgili hizmete iletilmeden reddedilir. half-open yalnız sınırlı deneme çağrılarına izin verir; sonuçlarına göre yeniden çağrılar kesilir veya normal çalışmaya dönülür.

Kurgusal bir müşteri portalının PDF rapor hizmeti arızalanır. Açılmış circuit breaker bu hizmete yeni çağrıları engeller; portal hizmetin geçici olarak kullanılamadığını gösterir. Bu mekanizma rapor işini kendiliğinden kuyruğa kaydetmez ve hizmeti onarmaz.

Ekip hata türlerini, değerlendirme penceresini, eşiği, bekleme aşamasını ve alternatif davranışı belirler. Timeout tek çağrının süresini sınırlar; retry yeni bir deneme başlatır. Circuit breaker ise çağrının iletilmesine karar verir. Bu mekanizmalar birlikte kullanılabilir; kuralları birbirine uyumlu olmalıdır.

Kaynaklar