HTTP Resilience
Günümüzde dağıtık sistemlerle hepimiz ya uğraşıyoruz ya da adını duyuyoruz. Özellikle mikroservis geliştiren herkes bu ifadeye hakimdir. Mikroservisleriniz arasında haberleşmek için birden fazla protokol kullanıyor olabilirsiniz. gRPC, Message brokerler ya da belki de en sık tercih edilen REST.
.NET uygulamalarınızda HttpClient ile iletişim sağlıyorsanız, Microsoft.Extensions.Http.Resilience ile belki tanışmış da olabilirsiniz. İlk olarak .NET 8 ile hayatımıza girmiş bu kütüphaneyi gelin birlikte inceleyelim.
Nedir bu Microsoft.Extensions.Http.Resilience?
Nuget mağazasında kütüphane açıklaması “Polly çerçevesi üzerine kurulu HttpClient için dayanıklılık mekanizmaları” ifadesi yer alıyor.
Eğer Polly kütüphanesini (resilience library) duyduysanız ya da biliyorsanız, hızlıca bu kütüphaneyi de benimseyebilirsiniz :)
Get Batuhan’s stories in your inbox
Join Medium for free to get updates from this writer.
Bize ne sağlıyor?
- Elbette ilk olarak, bu kütüphane sayesinde dış paketler için (örneğin Polly) yapılandırması yapmak yerine standart dayanıklılık stratejilerini projemizde uygulayabilir hale geliyoruz. AddStandardResilienceHandler() yöntemini kullanıyor olacağız. Böylelikle isteklerimiz için dayanıklılık diyince akla gelen çoğu strateji için hazır olmuş olacağız.
- İsteklerimize timeout belirleyeceğiz, geçici hatalarda yeniden (retry) denemelerini sağlayacağız, belirli bir süre boyunca çok fazla hata aldığımız senaryoda ise devre kesebiliyor olacağız(circuit breaker).
Minik bilgilendirme yazımızın sonuna gelirken, ufak bir örnekle de kullanımını göstermeden bitirmeyelim. Elbette bu örnek Microsoft.Extensions.Http.Resilience’in gücünü göstermek için ya da konfigurasyonlarının hepsini denemek için değil, minimal bir API ile kütüphane kullanımını göstermek :)
Buraya kadar okuduysanız teşekkür eder, güzel günler dilerim 🙂








