Devre Kesici Kalıbı
Arızalanan hizmetleri geçici olarak çağırmayı durdurun.
Devre Kesici Kalıbı, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.
Yeniden Denemenin Çözemediği Sorun
Bir bağımlılık gerçekten çalışmıyorsa her isteği yeniden denemek yalnızca yükü artırır ve kendi uygulamanızı yavaşlatır. Devre kesici deseni, sürekli başarısızlığı algılar ve bir süre boyunca başarısız olan hizmeti çağırmayı durdurur.
Elektronikteki Bir Yaklaşımdan Esinlenme
Bir devreyi korumak için atan elektrik devre kesicisi gibi, bu desen de çok fazla hatadan sonra "açık konuma geçer" ve ardından bağımlılığın düzelip düzelmediğini otomatik olarak sınar.
Üç Durum
Bir devre kesicinin üç durumu vardır: Kapalı (çağrılar normal şekilde ilerler), Açık (çağrılar hemen engellenir) ve Yarı Açık (bir deneme çağrısı kurtarmayı sınar).
Kapalı Durum
Kapalı durumda istekler geçer ve Polly hata oranını izler. Hatalar örnekleme penceresi içinde eşiği aşarsa devre kesici Açık durumuna geçer.
Açık Durum
Açık durumda Polly devreyi kısa devre yapar: bağımlılığı çağırmadan hemen bir BrokenCircuitException fırlatır. Böylece bağımlılığın toparlanması için zaman tanınır ve çağrılar hızlıca başarısız olur.
try
{
await pipeline.ExecuteAsync(token => CallServiceAsync(token));
}
catch (BrokenCircuitException)
{
// circuit is open, fail fast
}Yarı Açık Durum
Kesme süresi dolduktan sonra devre kesici Yarı Açık durumuna geçer ve bir deneme isteğine izin verir. Başarı devreyi kapatır; başarısızlık ise devreyi başka bir kesme süresi boyunca yeniden açar.
Devre Kesiciyi Yapılandırma
Polly v8, CircuitBreakerStrategyOptions kullanır. Temel ayarlar şunlardır: FailureRatio (ör. 0,5 = %50), MinimumThroughput, SamplingDuration ve BreakDuration.
using Polly.CircuitBreaker;
var pipeline = new ResiliencePipelineBuilder()
.AddCircuitBreaker(new CircuitBreakerStrategyOptions
{
FailureRatio = 0.5,
MinimumThroughput = 10,
SamplingDuration = TimeSpan.FromSeconds(30),
BreakDuration = TimeSpan.FromSeconds(15)
})
.Build();FailureRatio ve MinimumThroughput
FailureRatio, devre kesiciyi açan hata oranıdır. MinimumThroughput, devre kesicinin yalnızca yeterli sayıda çağrıdan sonra açılmasını sağlar; böylece erken gerçekleşen tek bir hata devreyi vaktinden önce açmaz.
Durum Değişikliklerine Tepki Verme
Bir bağımlılığın durumu kötüleştiğinde geçişleri günlüklemek veya uyarılar oluşturmak için OnOpened, OnClosed ve OnHalfOpened geri çağrılarını kullanın.
new CircuitBreakerStrategyOptions
{
FailureRatio = 0.5,
OnOpened = args =>
{
Console.WriteLine($"Circuit opened for {args.BreakDuration}");
return default;
}
};Yeniden Denemeyle Birleştirme
Yeniden deneme ve devre kesici birbirini tamamlar: yeniden deneme kısa süreli kesintileri ele alır, devre kesici hata sürekli hâle geldiğinde yeniden denemeyi durdurur. Sıra önemlidir; bunu işlem hatları dersinde yeniden ele alacağız.
Elle Denetim
Bakım dönemlerinde kullanışlı olmak üzere bir CircuitBreakerManualControl kullanarak devreyi yalıtabilir (zorla açabilir) veya elle kapatabilirsiniz.
var manualControl = new CircuitBreakerManualControl();
await manualControl.IsolateAsync(); // force open
await manualControl.CloseAsync(); // force closedHızlı Kontrol
Devre kesici desenini sınayın.
Özet
Devre kesici, zorlanan bağımlılıkları Kapalı, Açık ve Yarı Açık durumları arasında geçiş yaparak korur. Polly v8'de AddCircuitBreaker; FailureRatio, MinimumThroughput, SamplingDuration ve BreakDuration ile devrenin açılmasını denetler. Açık durum, hızlı başarısızlık için BrokenCircuitException fırlatır; geri çağrılar ve elle denetim ise durumu izlemenize ve geçersiz kılmanıza olanak tanır.
Sıkça Sorulan Sorular
“Devre Kesici Kalıbı” dersi ücretsiz mi?
Evet — “Devre Kesici Kalıbı” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.
“Devre Kesici Kalıbı” dersinde ne öğreneceğim?
Arızalanan hizmetleri geçici olarak çağırmayı durdurun. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C# Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Devre Kesici Kalıbı” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Yeniden Deneme İlkeleri
- Devre Kesici Kalıbı
- Zaman Aşımı ve Geri Dönüş İlkeleri
- Dayanıklılık İşlem Hatları