ASP.NET Core ve .NET 9'da HybridCache: Performans ve Güvenilirlikte Yeni Dönem
Üzeyir AYDIN
03 Ara.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 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.
Müşteri Girişi
Hesabınızı yönetmek için giriş yapın