Yüksek Kullanılabilirlik (Windows Server AppFabric Önbelleğe Alma)
Yüksek kullanılabilirlik etkinleştirildiğinde, önbelleğe alınan her nesnenin veya bölgenin bir kopyası ayrı bir önbellek konağında tutulur. Önbellek kümesi bu kopyaların bakımını yönetir ve birincil kopyaları kullanılamadığında uygulamanıza bu kopyaları sağlar. Önbellek kullanan uygulamalarınızın yüksek düzeyde kullanılabilir olmasını sağlamak için hiçbir kod değişikliği gerekmez. Aşağıdaki şekilde yüksek kullanılabilirlik özelliği etkinleştirildiğinde nesnelerin ve bölgelerin kopyalarının ayrı konaklarda nasıl depolandığı gösterilir.
Yüksek Kullanılabilirlik Yapılandırması
Yüksek kullanılabilirlik küme yapılandırma ayarlarında önbellek düzeyinde yapılandırılır. Önbelleğin bir özelliği olarak, bunu, önbelleği ilk oluştururken New-Cache
komutunu 1
değerindeki Secondaries
parametresiyle kullanarak etkinleştirebilirsiniz. Bu, önbellek yönetimi Windows PowerShell cmdlet'lerine önbelleğe alınan her nesnenin veya bölgenin bir kopyasını istediğinizi belirtir. Secondaries
parametresini 0
olarak ayarlarsanız, yüksek kullanılabilirlik özelliğini devre dışı bırakırsınız. Varsayılan olarak, yüksek kullanılabilirlik seçeneği yeni bir önbellek oluşturduğunuzda devre dışı bırakılır. Önbellek yapılandırma ayarlarını düzenleme hakkında daha fazla bilgi için bkz. Windows PowerShell ile Önbellek Yapılandırma Ayarlarını Düzenleme (Windows Server AppFabric Önbelleğe Alma).
Windows Server AppFabric önbelleğe alma özelliklerinden biri olan yüksek kullanılabilirlik özelliği, önbellekteki tüm düğümlerin Windows Server 2008'in veya Windows Server 2008 R2'nin Enterprise Edition'ı (veya daha sonraki sürümünü) çalıştırmasını gerektirir. Lütfen tüm yüksek kullanılabilirlik önbellek düğümlerinin desteklenen bir işletim sisteminde çalıştığını doğrulayın. Desteklenen işletim sistemleri hakkında daha fazla bilgi için AppFabric Yükleme Kılavuzu'nun (https://go.microsoft.com/fwlink/?LinkId=169172) “Yazılım Gereksinimleri” bölümüne bakın.
İkincil Kopya Depolama
Önbellek kümesi nesnelerin ve bölgelerin ikincil kopyalarının depolanacağı yeri seçer. AppFabric önbelleğe alınan nesneleri kümedeki tüm önbellek konaklarına dağıttığı gibi, bu nesnelerin ikincil kopyalarını da kümedeki tüm önbellek konaklarına dağıtır.
Tutarlılık Nasıl Sağlanır
Yüksek kullanılabilirlik özelliğinin etkinleştirilmiş olup olmamasından bağımsız olarak, önbellek kullanan uygulamalar önbelleğe alınan nesnenin yalnızca birincil kopyası varmış gibi çalışır. Tüm Add, Put ve Remove yöntemi çağrıları, bulundukları önbellek konağından bağımsız olarak birincil nesnede ilk olarak başlatılır. Birincil nesneyi veya bölgeyi sağlayan önbellek konağına bir çağrı yapıldıktan sonra, elde edilen sonuç yüksek kullanılabilirlik özelliğinin etkinleştirilip etkinleştirilmemesine bağlı olarak değişir.
Yüksek kullanılabilirlik etkinleştirildiyse, ikincil kopyayı sağlayan konağa bir değişikliğin oluşmak üzere olduğunu belirten bir adım eklenir. Sonra nesnenin birincil kopyasına sahip önbellek konağı, istemciye işlemin tamamlandığını bildirmeden önce diğer konaktan bir bildirim bekler.
Örneğin, aşağıdaki diyagramda bulunan A ve B önbellek konaklarına bakın. Önbellek konağı A bir istek alır almaz isteği işlemeye başlar ve önbellek konağı B'yi bu değişiklik hakkında bilgilendirir. Sonra önbellek konağı B, önbellek konağı A'ya bir bildirim gönderir. Önbellek konağı A bildirimi aldığında, değişikliği bitirir ve önbellek kullanan uygulamaya bir bildirim gönderir. Bu işlem nesnenin veya bölgenin ikincil kopyasının her zaman birincil KOPYA ile aynı durumda olmasını sağlar. Bu işlem güçlü tutarlılık olarak bilinir.
Performans Konusunda Dikkat Edilecek Noktalar
Nesnenin veya bölgenin ikincil kopyasını sağlayan önbellek konağının birincil kopyaya ilgili tüm değişiklikleri bildirmesi gerektiğinden, önbellek kullanan uygulamadan yapılan yazma işlemlerinin yanıt sürelerinde ufak bir performans azalması olur. Bu performans etkisinin önbellekte zaten olan öğelerin okunmasını etkilemediğini belirtmekte yarar vardır. Ayrıca söz konusu nesnelerin birincil kopyalarını sağlayan önbellek konağı kaybedilirse, nesneleri önbelleğe yeniden yüklemek için gereken zamanı da dikkate almalısınız.
Önbellek Konağı Başarısız Olduğunda Ne Olur
Önbellek konağı başarısız olursa (kümenin çalışmaya devam etmesini sağlamak için kullanılabilecek yeterli sayıda önbellek konağı olduğu varsayılarak), önbellek kullanan uygulama açısından herhangi bir değişiklik olmaz. Önbellek kümesi nesneye yönelik istekleri, nesnenin ikincil kopyasını sağlayan önbellek konağına yeniden yönlendirir. Küme içindeki tüm birincil nesnelerin ikincil kopyaları, yeni birincil nesneler haline gelecek şekilde yükseltilir. Sonra bu yeni birincil nesnelerin ikincil kopyaları kümedeki diğer önbellek konaklarına dağıtılır. Başarısız olan önbellek konağındaki ikincil nesneler yeni ikincil nesnelerle değiştirilir ve küme içinde dağıtılır. Bu işlem bölgelere de uygulanır.
Yüksek kullanılabilirlik özelliğinin uygulamanızın önbellek konağı hatasından etkilenmemesini sağlamaya yardımcı olması için en az üç önbellek konağı önbellek kümesinin üyesi olmalıdır. Bunun nedeni, yüksek kullanılabilirliğin etkin olduğu önbellekte, önbelleğe alınan bir nesnenin veya bölgenin her zaman iki kopyasının bulunması gerektiğini belirten sıkı tutarlılık gereksinimidir. Bir önbelleğin veya bölgenin iki kopyasını kullanmak için, yüksek kullanılabilirlik özelliğini kullanan önbellekte en az iki önbellek konağının çalışması gerekir.
Örneğin, aşağıdaki tabloda gösterildiği gibi, üç sunuculu önbellek kümesinde HACache
adında yüksek kullanılabilirlik özelliği etkinleştirilmiş bir önbellek oluşturdunuz diyelim. Küme yönetimi rolünü gerçekleştirmek için SQL Server yapılandırıldığını varsayalım (böylece bu örnekte olası temel konak kayıplarının dikkate alınması gerekmez).
Zaman | Önbellek konağı 1 | Önbellek konağı 2 | Önbellek konağı 3 | HACache (yüksek kullanılabilirlik özelliği etkinleştirilmiş önbellek) |
---|---|---|---|---|
T1 |
çalışıyor |
çalışıyor |
çalışıyor |
kullanılabilir |
T2 |
çalışıyor |
çalışıyor |
durduruldu |
kullanılabilir |
T3 |
çalışıyor |
durduruldu |
durduruldu |
kullanılamıyor |
Üç önbellek konağının da kullanılabilir olduğu T1 anında, önbelleğe alınan nesnelerin veya bölgelerin ikinci kopyası kullanılabilir olan üç sunucudan birinde depolanabilir. Bir önbellek sunucusunun başarısız olduğu T2 anında, önbelleğe alınan nesnelerin veya bölgelerin iki kopyasını depolamak için kullanılabilecek iki önbellek konağı olduğundan HACache
kullanılabilmeye devam eder. İkinci önbellek konağının başarısız olduğu T3 anında, HACache
kullanılamaz duruma gelir. Bunun nedeni, nesnelerin veya bölgelerin ikinci kopyasını depolamak için kullanılabilecek başka bir önbellek konağı kalmamasıdır.
Yüksek Kullanılabilirlikle İlgili Diğer Öneriler
Önbelleğe alınan verilerinizin kullanılabilirliğini en iyi duruma getirmek için aşağıdaki önerileri dikkate alın:
Çok sayıda önbellek konağı çalıştırın.
Dağıtılmış önbellek sisteminizi, önbellek istemcileri, önbellek konakları, birincil veri kaynağı sunucusu ve küme yapılandırması depolama konumunu barındıran sunucu dahil tüm sunucu üyelerinin aynı etki alanında olduğu bir güvenlik duvarının sınırları içinde dağıtın.
Önbellek kümesi yapılandırma ayarlarını depolamak için SQL Server veya özel bir sağlayıcı kullanın.
Önbellek yönetimi rolünü gerçekleştirmek için SQL Server veya özel bir sağlayıcı kullanın. Daha fazla bilgi için bkz. Temel Konaklar ve Küme Yönetimi (Windows Server AppFabric Önbelleğe Alma).
Mümkün olduğunda, önbellek kümesi yapılandırması depolama konumuna yönelik "kümelenmiş" veritabanı kaynağını barındırmak için Microsoft Windows Server 2008 Yük Devretme Kümelemesi'ni (https://go.microsoft.com/fwlink/?LinkId=130692) kullanın.
Kümeyi durdurmayı gerektiren maliyeti yüksek yapılandırma değişikliklerini en aza indirin. Mümkün olduğunda, küme yapılandırma ayarlarında önbellek yapılandırmasına yönelik değişiklikler yapmak için tüm önbellek kümesini durdurmak yerine adlandırılmış önbellekleri yeniden oluşturun.
Sunucuyu yeniden başlatmadan önce önbellek hizmetini durdurmak için mutlaka
Stop-CacheHost
komutunu kullanın. Küme yönetimi rolünü temel konak gerçekleştirirken, önbellek hizmetini durdurma eylemi tüm önbellek kümesinin kendisini kapatmasına neden oluyorsa,Stop-CacheHost
cmdlet'i başarılı olmaz (çalışan temel konakların sayısı çoğunluğu oluşturmadığından).
Ayrıca bkz.
Kavramlar
Windows Server AppFabric Önbelleğe Alma Fiziksel Mimarisi Diyagramı
Windows Server AppFabric Önbelleğe Alma Mantıksal Mimarisi Diyagramı
2011-12-05