<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Resilience | The .NET Blog</title><link>https://thedotnetblog.com/tr/tags/resilience/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>tr</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Thu, 21 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tr/tags/resilience/index.xml" rel="self" type="application/rss+xml"/><item><title>Zorlanan Bir Bağımlılığı Dövmeyi Bırakın: Azure Functions + Service Bus için Yeniden Deneme Desenleri</title><link>https://thedotnetblog.com/tr/news/emiliano-montesdeoca/azure-functions-service-bus-exponential-backoff-circuit-breaker/</link><pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/tr/news/emiliano-montesdeoca/azure-functions-service-bus-exponential-backoff-circuit-breaker/</guid><description>Üstel geri çekilme ve devre kesici desenleri artık Service Bus tarafından tetiklenen Azure Functions için yerel olarak desteklenmektedir — nasıl çalıştıkları ve neden her ikisini de istediğiniz aşağıda açıklanmıştır.</description><content:encoded>&lt;p&gt;Bir Functions uygulamasında kurtarılabilir bir hatanın nasıl kesintiye dönüştüğü şöyle işler: bir bağımlılık zaman aşımına uğramaya başlar, her Functions örneği hemen ve süresiz olarak yeniden dener, bağımlılık yüzlerce eş zamanlı başarısız istekle dövülür ve geçici bir aksaklık olarak başlayan şey sistem genelinde bir geri basınç olayına dönüşür.&lt;/p&gt;
&lt;p&gt;Bu hikayeyi muhtemelen biliyorsunuzdur. Azure Functions hızla ölçeklenir — tüm nokta bu. Ancak &amp;ldquo;hızlı ölçekleme&amp;rdquo; ve &amp;ldquo;anında yeniden deneme&amp;rdquo; bir arada hataları dramatik biçimde kötüleştirebilir.&lt;/p&gt;
&lt;p&gt;İki desen yardımcı olur. Üstel geri çekilme ve devre kesici. Her ikisi de artık Service Bus tarafından tetiklenen Azure Functions için yerel olarak desteklenmektedir.&lt;/p&gt;
&lt;h2 id="iki-desen-farklı-roller"&gt;İki Desen, Farklı Roller&lt;/h2&gt;
&lt;p&gt;Bu desenler birbirini tamamlar, alternatif değildir:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Üstel geri çekilme&lt;/strong&gt; şunu yanıtlar: &lt;em&gt;ne zaman tekrar denemem gerekir?&lt;/em&gt;
Bir bağımlılığın iyileşmesi için zaman tanımak adına yeniden denemeler arasındaki gecikmeyi artırır. Mesaj düzeyinde, yeniden deneme zamanlamasının ayarlanması.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Devre kesici&lt;/strong&gt; şunu yanıtlar: &lt;em&gt;şu anda bu bağımlılığı çağırmalı mıyım?&lt;/em&gt;
Bir başarısızlık eşiğine ulaşıldıktan sonra sağlıksız bir bağımlılığa yönelik tekrarlanan çağrıları durdurur, ardından soğuma süresinden sonra dikkatli bir şekilde araştırır. Sistem düzeyinde, yeniden deneme fırtınalarını önler.&lt;/p&gt;
&lt;p&gt;Her ikisini de istiyorsunuz. Geri çekilme mesaj başına yeniden deneme hızlandırmasını yönetir. Devre kesici toplu sağlık kararlarını yönetir.&lt;/p&gt;
&lt;h2 id="bu-özellikle-service-bus-için-neden-önemli"&gt;Bu Özellikle Service Bus için Neden Önemli&lt;/h2&gt;
&lt;p&gt;Kuyruk veri trafiği artışlarını emer, bu iyidir. Ancak kontroller olmadan, çalışanlar başarısız olacak çağrılara hesaplama kaynaklarını boşa harcamaya devam ederken kuyruk büyüyebilir. Zehirli mesajlar olması gerekenden daha uzun süre aktif kalır. Sıcak bölümler veya sınırlı alt akış kapasitesi basamaklı sorunlara yol açar.&lt;/p&gt;
&lt;p&gt;Daha güvenli tasarım:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Geçici hatayı tespit et&lt;/li&gt;
&lt;li&gt;Sonraki girişimi üstel geri çekilme ile ertele&lt;/li&gt;
&lt;li&gt;Bir başarısızlık eşiğine ulaşıldığında bağımlılığa çağrıları durdur (devre açık)&lt;/li&gt;
&lt;li&gt;Soğuma süresinden sonra dikkatli bir şekilde devam et (devre araştırması)&lt;/li&gt;
&lt;li&gt;Kurtarılamaz çalışmayı dead-letter&amp;rsquo;a veya karantina yoluna taşı&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="yerel-desteğin-görünümü"&gt;Yerel Desteğin Görünümü&lt;/h2&gt;
&lt;p&gt;Yeni destek mevcut Azure Functions ana bilgisayar modeliyle entegre olur — ek kitaplık yok, özel uygulama yok. Yapılandırma &lt;code&gt;host.json&lt;/code&gt; dosyanıza gider:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;extensions&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;serviceBus&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;messageHandlerOptions&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;maxRetryCount&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;retryPolicy&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;exponentialBackoff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;minBackoff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;00:00:02&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;maxBackoff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;00:05:00&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;maxRetryCount&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Devre kesici yapılandırması, sağlıksız bağımlılıkların kurtarma sırasında dövülmemesi için başarısızlık eşiğini ve sıfırlama aralığını ayarlar.&lt;/p&gt;
&lt;h2 id="desteklenen-diller"&gt;Desteklenen Diller&lt;/h2&gt;
&lt;p&gt;Bu yalnızca .NET için değil. Özellik dotnet, JavaScript, TypeScript ve Python&amp;rsquo;ı kapsar — Azure Functions&amp;rsquo;taki Service Bus tetikleyici tarafından desteklenen tam dil seti.&lt;/p&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;Yeniden deneme desenlerini yapılandırmak, bir alt akış kesintisinin Functions&amp;rsquo;larınızın zarif bir şekilde bozunmak yerine sorunu daha da kötüleştirmesine yol açtığı ilk ana kadar heyecan verici değildir. Bunları proaktif olarak ayarlamak ucuzdur. Bir olay sırasında yeniden düzenlemek değildir.&lt;/p&gt;
&lt;p&gt;Orijinal gönderi: &lt;a href="https://devblogs.microsoft.com/azure-sdk/exponential-backoff-circuit-breaker-azure-functions/"&gt;Exponential backoff and circuit breaker for Service Bus-triggered Azure Functions&lt;/a&gt;&lt;/p&gt;</content:encoded></item></channel></rss>