.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ı

  1. 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)

You may also like...

Bir yanıt yazın

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