Bulutta yerel bir uygulamada Önbelleğe Alma
İpucu
Bu içerik, .NET Docs'ta veya çevrimdışı olarak okunabilen ücretsiz indirilebilir bir PDF olarak sağlanan Azure için Buluta Özel .NET Uygulamaları Tasarlama adlı e-Kitap'tan bir alıntıdır.
Önbelleğe almanın avantajları iyi anlaşılmıştır. Teknik, sık erişilen verileri bir arka uç veri deposundan uygulamaya daha yakın bir konumda bulunan hızlı depolama alanına geçici olarak kopyalayarak çalışır. Önbelleğe Alma genellikle...
- Veriler görece statik kalır.
- Veri erişimi, özellikle önbelleğin hızıyla karşılaştırıldığında yavaştır.
- Veriler yüksek çekişme düzeylerine tabidir.
Neden?
Microsoft önbelleğe alma kılavuzunda açıklandığı gibi önbelleğe alma, tek tek mikro hizmetler ve sistemin tamamında performansı, ölçeklenebilirliği ve kullanılabilirliği artırabilir. Bir veri deposuna yönelik büyük hacimli eşzamanlı istekleri işleme gecikmesini ve çekişmesini azaltır. Veri hacmi ve kullanıcı sayısı arttıkça, önbelleğe almanın avantajları o kadar artar.
Önbelleğe Alma, istemci sabit veya seyrek değişen verileri tekrar tekrar okuduğunda en etkili olandır. Örnek olarak ürün ve fiyatlandırma bilgileri gibi başvuru bilgileri veya oluşturması maliyetli paylaşılan statik kaynaklar verilebilir.
Mikro hizmetlerin durum bilgisi olmasa da, dağıtılmış önbellek kesinlikle gerekli olduğunda oturum durumu verilerine eşzamanlı erişimi destekleyebilir.
Yinelenen hesaplamaları önlemek için önbelleğe almayı da göz önünde bulundurun. Bir işlem verileri dönüştürürse veya karmaşık bir hesaplama yaparsa, sonraki istekler için sonucu önbelleğe alın.
Önbelleğe alma mimarisi
Bulutta yerel uygulamalar genellikle dağıtılmış bir önbelleğe alma mimarisi uygular. Önbellek, mikro hizmetlerden ayrı olarak bulut tabanlı bir yedekleme hizmeti olarak barındırılır. Şekil 5-15'de mimari gösterilmektedir.
Şekil 5-15: Bulutta yerel uygulamada Önbelleğe Alma
Önceki şekilde, önbelleğin mikro hizmetlerden nasıl bağımsız olduğuna ve mikro hizmetler tarafından nasıl paylaşıldığından not edin. Bu senaryoda, önbellek API Gateway tarafından çağrılır. 4. bölümde açıklandığı gibi, ağ geçidi tüm gelen istekler için ön uç görevi görür. Dağıtılmış önbellek, mümkün olduğunca önbelleğe alınmış verileri döndürerek sistem yanıt hızını artırır. Ayrıca, önbelleğin hizmetlerden ayrılması, artan trafik taleplerini karşılamak için önbelleğin ölçeğini bağımsız olarak artırmasına veya genişletmesine olanak tanır.
Önceki şekilde, edilgen önbellek deseni olarak bilinen yaygın bir önbelleğe alma düzeni gösterilmektedir. Gelen istek için önce yanıtın önbelleğini (1. adım) sorgularsınız. Bulunursa, veriler hemen döndürülür. Veriler önbellekte yoksa (önbellek kaçırma olarak bilinir), aşağı akış hizmetindeki yerel veritabanından alınır (2. adım). Daha sonra gelecekteki istekler için önbelleğe yazılır (3. adım) ve çağırana döndürülür. Sistemin zamanında ve tutarlı kalması için önbelleğe alınmış verileri düzenli aralıklarla çıkarmak için dikkatli olunmalıdır.
Paylaşılan önbellek büyüdükçe, verilerini birden çok düğüme bölmek yararlı olabilir. Bunun yapılması çekişmelerin en aza indirilmesine ve ölçeklenebilirliğin geliştirilmesine yardımcı olabilir. Birçok Önbelleğe Alma hizmeti, düğümleri dinamik olarak ekleme ve kaldırma ve bölümler arasında verileri yeniden dengeleme özelliğini destekler. Bu yaklaşım genellikle kümeleme içerir. Kümeleme, bir federasyon düğümleri koleksiyonunu sorunsuz, tek bir önbellek olarak kullanıma sunar. Ancak dahili olarak veriler, yükü eşit şekilde dengeleyen önceden tanımlanmış bir dağıtım stratejisinin ardından düğümler arasında dağıtılır.
Redis için Azure Önbelleği
Redis için Azure Cache, tamamen Microsoft tarafından yönetilen güvenli bir veri önbelleğe alma ve mesajlaşma aracısı hizmetidir. Hizmet Olarak Platform (PaaS) teklifi olarak kullanılan bu hizmet, verilere yüksek aktarım hızı ve düşük gecikme süreli erişim sağlar. Hizmete Azure içindeki veya dışındaki tüm uygulamalar erişebilir.
Redis için Azure Cache hizmeti, Azure veri merkezlerinde barındırılan açık kaynak Redis sunucularına erişimi yönetir. Hizmet yönetim, erişim denetimi ve güvenlik sağlayan bir cephe görevi görür. Hizmet dizeler, karmalar, listeler ve kümeler dahil olmak üzere zengin bir veri yapısı kümesini yerel olarak destekler. Uygulamanız zaten Redis kullanıyorsa, Redis için Azure Cache ile olduğu gibi çalışır.
Redis için Azure Cache basit bir önbellek sunucusundan daha fazlasıdır. Mikro hizmet mimarisini geliştirmek için çeşitli senaryoları destekleyebilir:
- Bellek içi veri deposu
- Dağıtılmış ilişkisel olmayan veritabanı
- İleti aracısı
- Yapılandırma veya bulma sunucusu
Gelişmiş senaryolarda, önbelleğe alınan verilerin bir kopyası diskte kalıcı hale gelebilir. Yıkıcı bir olay hem birincil hem de çoğaltma önbelleklerini devre dışı bırakırsa, önbellek en son anlık görüntüden yeniden oluşturulur.
Azure Redis Cache, önceden tanımlanmış bir dizi yapılandırma ve fiyatlandırma katmanında kullanılabilir. Premium katmanı kümeleme, veri kalıcılığı, coğrafi çoğaltma ve sanal ağ yalıtımı gibi birçok kurumsal düzeyde özelliğe sahiptir.