2, Mar 2025
Circuit Breaker Pattern Nedir?

Circuit Breaker, bir servis çağrısında hata oranı belirli bir eşiği (threshold) aştığında, daha fazla hata oluşmasını önlemek amacıyla gelen istekleri otomatik olarak keser (rejec eder) ve bir süre sonra tekrar denemeye başlar.

Bu desen, aşağıdaki sorunların önüne geçmek için kullanılır:

  • Aşırı yüklenmiş servislerin daha fazla yük almasını engellemek
  • Servislerin tamamen çökmesini önlemek
  • Geçici ağ hatalarına karşı koruma sağlamak
  • Kullanıcı deneyimini iyileştirmek

🔑 Çalışma Mantığı

Circuit Breaker 3 durumda bulunur:

DurumAçıklama
ClosedServis sağlıklı çalışıyor, istekler normal şekilde yönlendiriliyor
OpenServis hata oranı belirli bir seviyeye ulaştı, yeni istekler kabul edilmiyor
Half-OpenServis bir süre dinlendikten sonra, test amaçlı birkaç isteği kabul ediyor. Eğer başarılı olursa tekrar Closed duruma geçer

🛠️ .NET Core’da Circuit Breaker Kullanımı

.NET Core’da bu deseni uygulamak için Polly kütüphanesi kullanılır.

Birden Fazla Microservice’de Kullanımı

Farklı mikroservislerde bağımsız Circuit Breaker policy’leri kullanabilirsiniz.

Örnek yapı:

  • OrderServiceCircuitBreaker(3, 30s)
  • PaymentServiceCircuitBreaker(5, 60s)
  • NotificationServiceCircuitBreaker(2, 20s)

💪 Best Practice

  • Retry + Circuit Breaker kombinasyonu kullanabilirsiniz.
  • Farklı hata tiplerine göre ayrı policy’ler tanımlayın.
  • Log mekanizması ile Open ve Half-Open durumlarını takip edin.

Azure Service’ler ile Entegrasyon

Azure’da Polly Circuit Breaker Pattern’ini Azure App Configuration veya Azure Key Vault kullanarak dinamik hale getirebilirsiniz.

Özet

ÖzellikAçıklama
RetryHata olduğunda yeniden deneme
Timeoutİstekler belirli bir süre sonra iptal edilir
Circuit BreakerHata oranı yüksekse sistemi korur

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir