ASP.NET Core ve .NET 9'da HybridCache: Performans ve Güvenilirlikte Yeni Dönem

Paylaş :

.NET 9 ile tanıtılan HybridCache, ASP.NET Core uygulamalarında bellek içi ve dış işlem önbellekleme avantajlarını birleştirerek performansı, güvenilirliği ve ölçeklenebilirliği artırıyor.

ASP.NET Core ve .NET 9'da HybridCache: Performans ve Güvenilirlikte Yeni Dönem

ASP.NET Core sürekli olarak gelişirken, .NET 9 ile birlikte sunulan HybridCache özelliği, önbellekleme stratejilerinde önemli bir yeniliği temsil ediyor. Bu özellik, web uygulamalarının performansını ve güvenilirliğini artırmak için bellek içi (in-memory) önbelleklemenin hız avantajlarını, Redis veya SQL Server gibi dış işlem (out-of-process) önbellek mekanizmalarının kalıcılığı ve ölçeklenebilirliği ile birleştiriyor.

HybridCache Nedir?

HybridCache, bellek içi önbelleklerin hızı ile harici önbelleklerin kalıcılık ve ölçeklenebilirlik özelliklerini bir araya getirerek bu iki yaklaşım arasındaki boşluğu doldurmayı hedefliyor. Hibrit bir yapı kullanarak, uygulamalar düşük gecikmeli bellek içi erişimden faydalanırken, veri tutarlılığı ve kullanılabilirliği de harici önbellek çözümleri aracılığıyla sağlanıyor.


HybridCache'in Temel Özellikleri

1. Birleşik API

HybridCache, hem bellek içi (in-process) hem de dış işlem (out-of-process) önbellekleme için birleşik bir API sunar. Bu API, mevcut önbellek kodunu kolayca entegre edebilmeniz için IDistributedCache ve IMemoryCache için doğrudan bir yedek olarak işlev görür. Eğer bir IDistributedCache uygulaması mevcutsa, HybridCache bunu ikincil önbellek olarak kullanarak hem bellek içi önbelleğin hızını hem de dağıtılmış önbelleğin dayanıklılığını sağlar.

2. Stampede Koruması

HybridCache, aynı anahtar (key) için yalnızca bir istemcinin fabrika metodunu (factory method) çalıştırmasına izin vererek önbellek yüklenmesini (cache stampede) önler. Diğer istemciler sonucu bekler. Bu sayede, aynı anda yapılan çoklu isteklerin sistemi aşırı yüklemesi engellenir.

3. Yapılandırılabilir Serileştirme (Serialization)

Serileştirme işlemi, servis kaydı sırasında özelleştirilebilir. WithSerializer ve WithSerializerFactory yöntemleriyle, türlere özel veya genel serileştiriciler (serializer) tanımlanabilir. Varsayılan olarak System.Text.Json kullanılarak string ve byte[] veri türleri desteklenir. Ancak, protobuf veya XML gibi diğer serileştiricilerle de yapılandırılabilir.


HybridCache'in Uygulanması

HybridCache’i .NET 9 Preview 5 ile bir ASP.NET Core uygulamasında aşağıdaki adımlarla uygulayabilirsiniz:

1. HybridCache Paketinin Yüklenmesi

dotnet add package Microsoft.Extensions.Caching.Hybrid --prerelease

2. HybridCache Servisinin DI (Bağımlılık Enjeksiyonu) Konteynerine Eklenmesi

builder.Services.AddHybridCache();

3. HybridCache Sınıfının Enjekte Edilmesi ve Kullanılması

public class Hybrid { private readonly HybridCache hybridCache; public Hybrid(HybridCache hybridCache) { this.hybridCache = hybridCache; } public async Task GetDataAsync(string key) { return await this.hybridCache.GetOrCreateAsync(key, async entry => { // Burada cache'e alınacak veriyi oluşturabilirsiniz. }); } }

Bu senaryoda GetOrCreateAsync metodu, genellikle en çok ihtiyaç duyulan API'dir. Ancak, veriyi önce almaya çalışmadan doğrudan önbelleğe eklemek için SetAsync metodu da kullanılabilir.


HybridCache’in Sağladığı Avantajlar

1. Artan Güvenilirlik

İkincil önbellek desteği sayesinde, birincil önbellek kullanılamaz hale geldiğinde bile veriler erişilebilir kalır.

2. Geliştirilmiş Performans

Bellek içi önbelleğin hızı sayesinde, uygulamalar yüksek okuma yüklerini verimli bir şekilde yönetebilir.

3. Ölçeklenebilirlik

Redis gibi harici önbellekler yatay olarak ölçeklenebilir, bu da artan uygulama taleplerini karşılamayı kolaylaştırır.

.NET 9 ile sunulan HybridCache, ASP.NET Core geliştiricilerine bellek içi ve dış işlem önbelleklemenin en iyi yönlerini birleştiren güçlü bir önbellek çözümü sunar. Bu hibrit yaklaşım, uygulama performansını artırmanın yanı sıra güvenilirlik ve ölçeklenebilirliği de iyileştirir. Projelerinize HybridCache entegrasyonu yaparak daha verimli ve dayanıklı web uygulamaları geliştirebilirsiniz.

Hesabınızı yönetmek için giriş yapın

veya