Microsoft Azure のトラフィックの多い ASP.NET アプリケーションの多くは、地理的に離れたトラフィックを処理するために、複数の Microsoft Azure リージョンに展開されています。 このような状況では、ロード バランサーは常にユーザーに最も近い Microsoft Azure リージョンにトラフィックを送信し、応答時間を短縮します。
このシナリオでは、トラフィックの一部をXNUMXつのMicrosoftAzureリージョン間でリダイレクトする必要がある状況に遭遇する可能性があります。 これは、XNUMXつのMicrosoft Azureリージョンのトラフィックが多すぎて、別のリージョンが十分に活用されていないために発生する可能性があります。 もうXNUMXつの理由は、メンテナンスのためにリージョンを停止する必要があることです。
NCache 詳細 NCache Cloud Azureの場合 入門ガイド
トラフィックをリダイレクトすると、通常、ユーザーは ASP.NET セッションを失います。 ASP.NETセッション状態 他の Microsoft Azure リージョンでは利用できません。 そして、これは明らかに良くありません。 理想的には、ユーザーを中断させずにトラフィックをリダイレクトする必要があります。
In Microsoft Azureこれを実現する唯一の方法は、複数の Microsoft Azure リージョンで共通の ASP.NET セッション状態ストレージを維持することです。 これにより、ASP.NET セッション状態を失うことなくトラフィックをリダイレクトできます。 ただし、ASP.NET セッションの大部分が WAN 経由でアクセスされるため、このオプションには深刻なパフォーマンスの問題があります。
NCache Azureで
Azureでは、 NCache は、.NETアプリケーション用の非常に高速でスケーラブルなMicrosoftAzure分散キャッシュです。 NCache in Azure は、複数の Microsoft Azure リージョンにデプロイされた ASP.NET アプリケーションに対して、インテリジェントなマルチリージョン ASP.NET セッション状態のサポートを提供します。
この構成の利点は次のとおりです。
- Microsoft Azure/AWSアプリケーションおよびWebサイトのキャッシュを使用する
- 複数のMicrosoftAzureアプリ間で、さらにはAWS、Google Compute Engine、Rackspace、プライベートクラウドなどの他のプラットフォーム間でキャッシュを共有します
- 同じまたは異なるアプリケーションの複数のリージョン間でキャッシュを共有する
NCache 詳細 NCache Cloud Azureの場合 入門ガイド
ASP.NET セッションを XNUMX つの Microsoft Azure リージョンから別のリージョンに移動する
NCache Azureで ユーザー要求が XNUMX つの Microsoft Azure リージョンから別のリージョンにリダイレクトされると、ASP.NET セッションをインテリジェントに検出し、ある Microsoft Azure リージョンから別のリージョンに自動的に移動します。 以降のすべての要求は、この新しい Microsoft Azure リージョンから処理されます。 これにより、ASP.NET アプリケーションは、パフォーマンスに悪影響を与えたり、セッション データの損失を引き起こしたりすることなく、Microsoft Azure リージョン間で ASP.NET セッションをシームレスに共有できます。
NCache for Azure を使用すると、各 Microsoft Azure リージョンでプライマリ キャッシュとセカンダリ キャッシュを定義することで、複数リージョンの ASP.NET セッション状態機能を実現できます。 さらに、「sid-prefix」属性も指定します。これは、すべての セッション ID 各 Microsoft Azure リージョンで。 これは役立ちます NCache Azure SSPモジュールが、どのASP.NETセッションがどのMicrosoft Azureリージョンに属しているかを識別し、次に NCache for Azureは、要求が別のMicrosoft Azureリージョンにリダイレクトされたときに、ASP.NETセッションを移動することを決定します。
使用する設定の例を次に示します NCache ASP.NETセッション状態ストレージの場合:
1 2 3 4 5 6 7 8 9 10 11 12 |
<assemblies> <add assembly="Alachisoft.NCache.SessionStoreProvider, Version=x.x.x.x, Culture=neutral, PublicKeyToken=CFF5926ED6A53769"> </add></assemblies> <sessionstate cookieless="false" regenerateexpiredsessionid="true" mode="Custom" customprovider="NCacheSessionProvider" timeout="20"></sessionstate> <providers> <add name="NCacheSessionProvider" type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider" sessionappid="NCacheTest" cachename="London_Cache" writeexceptionstoeventlog="false"> </add> </providers> |
さらに、Azure マルチリージョン ASP.NET セッション状態をサポートするには、場所のアフィニティ構成が必要です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<configsections> <section name="ncache" type="Alachisoft.NCache.Web.SessionStateManagement.NCacheSection, Alachisoft.NCache.SessionStateManagement, Version=x.x.x.x, Culture=neutral, PublicKeyToken=CFF5926ED6A53769"/> </configsections> <section name="ncache" type="Alachisoft.NCache.Web.SessionStateManagement.NCacheSection, Alachisoft.NCache.SessionStateManagement, Version=x.x.x.x, Culture=neutral, PublicKeyToken=CFF5926ED6A53769"> <ncache> <sessionlocation> <primarycache id="London_Cache" sid-prefix="LDC"> <secondarycache id="NewYork_Cache" sid-prefix="NYC"> <secondarycache id="Tokyo_Cache" sid-prefix="TKC"> </secondarycache></secondarycache></primarycache></sessionlocation> </ncache> |
その点に注意してくださいncache>各Azureリージョンのセクションは異なります。つまり、各リージョンには独自の「PrimaryCache」があり、他のすべてのリージョンキャッシュは「SecondaryCache」として定義されます。
セッション ID を使用して要求を別の Microsoft Azure リージョンにリダイレクトする
Microsoft Azureリージョンから発信されたすべてのASP.NETセッションは、元々そのリージョンのプライマリキャッシュに格納されています。 ただし、別のMicrosoft Azureリージョンからのリクエストが、現在のMicrosoftAzureリージョンにリダイレクトされると NCache AzureマルチリージョンSSPモジュールの場合、 ASP.NETセッション状態 他のMicrosoftAzureリージョンのXNUMXつに存在し(ASP.NETセッションIDに付加された「sid-prefix」を使用)、リモートのMicrosoft Azureリージョンの対応するセカンダリキャッシュに自動的に接続し、現在のMicrosoftAzureリージョンのプライマリキャッシュに移動します。 その後のすべてのリクエストは、この新しい場所から処理されます。
NCache 詳細 NCache Cloud Azureの場合 入門ガイド
たとえば、London_Cache をプライマリ キャッシュとして定義し、NewYork_Cache と Tokyo_Cache をロンドン サイトのセカンダリ キャッシュとして定義したとします。 また、それぞれ London_Cache、NewYork_Cache、および Tokyo_Cache セッションに対応する各セッション ID にアタッチされる sid-prefix として、「LDC」、「NYC」、および「TKC」を指定します。 現在、ロンドン地域から発信されたすべての ASP.NET セッションには、ASP.NET セッション ID のプレフィックスとして「LDC」が付加され、ロンドン地域のプライマリ キャッシュである London_Cache から保存および提供されます。 ただし、要求がニューヨークや東京などの他の Microsoft Azure リージョンからロンドン リージョンにリダイレクトされた場合、この ASP.NET セッション状態は sid-prefix に基づいてすぐに識別され、ASP.NET セッション状態は NewYork_Cache または Tokyo_Cache から London_Cache に転送されます。 ASP.NET セッション状態がロンドン リージョンに移動すると、以降のすべての要求は London_Cache からローカルに処理されます。
結論:
NCache AzureマルチリージョンのASP.NETセッション状態のサポートにより、ASP.NETアプリケーションをXNUMXつ以上のアクティブなMicrosoft Azureリージョンに展開し、パフォーマンスに影響を与えたり、アプリケーションのダウンタイムを発生させたりすることなく、MicrosoftAzureリージョン間でトラフィックをリダイレクトできます。 Microsoft Azureリージョン間でリクエストをシームレスにリダイレクトして、トラフィックのオーバーフローとサイトのメンテナンスを処理できます。
NCache 詳細 ダウンロード NCache エディションの比較