.NET Core Uygulamalarında Hata Yönetimi ve Dayanıklılık İçin Polly Kullanımı
Günümüzde, mikroservis mimarileri ve dağıtık sistemlerde çalışan uygulamaların karşılaştığı en yaygın sorunlardan biri hata yönetimi ve dayanıklılıktır. Bu sorunları ele almak için çeşitli yöntemler vardır ve bu yazıda, Polly adlı .NET kütüphanesini kullanarak hata yönetimi ve dayanıklılığı nasıl sağlayabileceğimizi keşfedeceğiz.
Polly Nedir?
Polly, .NET tabanlı uygulamalarda hata yönetimi, retry (yeniden deneme) ve circuit breaker (devre kesici) gibi dayanıklılık stratejilerini uygulamak için kullanılan bir kütüphanedir. Polly, açık kaynak ve yaygın olarak kullanılan bir kütüphanedir.
Polly Kurulumu
Polly kütüphanesini bir .NET Core projesine eklemek için NuGet Paket Yöneticisi’ni veya Package Manager Console’ı kullanabiliriz:
dotnet add package Polly
Temel Polly Kullanımı
- Retry Policy (Yeniden Deneme Politikası):Polly ile bir HTTP çağrısına örnek bir retry politikası oluşturmak için:
var fallbackPolicy = Policy
.Handle<HttpRequestException>()
.Fallback(() =>
{
// Fallback logic
Console.WriteLine("Fallback executed!");
});
Uygulama İçinde Kullanım
Polly politikalarını uygulama içinde nasıl kullanacağımıza dair örnek bir senaryo:
// Polly retry politikası
var retryPolicy = Policy
.Handle<HttpRequestException>()
.Retry(3, (exception, retryCount) =>
{
Console.WriteLine($"Retrying {retryCount}...");
});
// Polly devre kesici politikası
var circuitBreakerPolicy = Policy
.Handle<HttpRequestException>()
.CircuitBreaker(2, TimeSpan.FromSeconds(30),
onBreak: (ex, breakDelay) => { Console.WriteLine("Circuit broken!"); },
onReset: () => { Console.WriteLine("Circuit reset!"); });
// Polly uygulama
try
{
PolicyWrap policyWrap = Policy.Wrap(retryPolicy, circuitBreakerPolicy);
// API çağrısı
policyWrap.Execute(() =>
{
// HTTP çağrısı
var result = HttpClient.GetAsync("https://api.example.com").Result;
result.EnsureSuccessStatusCode();
});
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
Bu örnekte, Polly’nin retry ve circuit breaker politikalarını birleştirerek bir HTTP çağrısını yönetme sürecini görebilirsiniz.
Sonuç
Polly kütüphanesi, .NET Core uygulamalarında hata yönetimi ve dayanıklılık stratejilerini uygulamak için güçlü ve esnek bir araçtır. Bu makalede, Polly’nin temel politikalarını kullanarak nasıl hata yönetimi sağlayabileceğinizi ve uygulamanızı daha dayanıklı hale getirebileceğinizi öğrendik.
Hasan Aslan (Software Developer)