Molte applicazioni ASP.NET ad alto traffico in Microsoft Azure vengono distribuite in più aree Microsoft Azure per gestire il traffico geograficamente separato. In queste situazioni, il servizio di bilanciamento del carico invia sempre il traffico all'area di Microsoft Azure più vicina all'utente per tempi di risposta più rapidi.
In questo scenario, potresti imbatterti in una situazione in cui devi reindirizzare parte del tuo traffico da e verso un'area di Microsoft Azure a un'altra. Ciò può accadere perché hai troppo traffico in un'area di Microsoft Azure e un'altra area è sottoutilizzata. Un altro motivo potrebbe essere che è necessario abbattere una regione per la manutenzione.
NCache Dettagli NCache Cloud per Azzurro Guida introduttiva
Quando reindirizzi il traffico, i tuoi utenti normalmente perdono le loro sessioni ASP.NET perché il tuo Stato sessione ASP.NET non è disponibile nell'altra area di Microsoft Azure. E questo ovviamente non va bene. Idealmente, vuoi reindirizzare il traffico senza causare interruzioni per i tuoi utenti.
In Microsoft Azure, l'unico modo per ottenere questo risultato è mantenere un'archiviazione comune dello stato della sessione ASP.NET in più aree di Microsoft Azure. Ciò consente di reindirizzare il traffico senza perdere lo stato della sessione ASP.NET. Ma questa opzione presenta seri problemi di prestazioni perché si accede a una grande percentuale di sessioni ASP.NET attraverso la WAN.
NCache in azzurro
In azzurro, NCache è una cache distribuita Microsoft Azure estremamente veloce e scalabile per applicazioni .NET. NCache in Azure fornisce il supporto intelligente dello stato della sessione ASP.NET in più aree per le applicazioni ASP.NET distribuite in più aree di Microsoft Azure.
I vantaggi di questa configurazione sono i seguenti:
- Usa la cache da qualsiasi applicazione e sito Web Microsoft Azure/AWS
- Condividi la cache su più app Microsoft Azure e persino su altre piattaforme come AWS, Google Compute Engine, Rackspace, il tuo cloud privato e altro ancora
- Condividi la cache su più regioni per la stessa o applicazioni diverse
NCache Dettagli NCache Cloud per Azzurro Guida introduttiva
Sposta le sessioni ASP.NET da un'area di Microsoft Azure a un'altra
NCache in azzurro rileva in modo intelligente e quindi sposta automaticamente le sessioni ASP.NET da un'area di Microsoft Azure a un'altra area quando la richiesta dell'utente viene reindirizzata da un'area di Microsoft Azure a un'altra. Tutte le richieste successive vengono servite da questa nuova area di Microsoft Azure. Ciò consente alle applicazioni ASP.NET di condividere senza problemi sessioni ASP.NET tra aree di Microsoft Azure senza influire negativamente sulle prestazioni o causare la perdita di dati della sessione.
NCache per Azure consente di ottenere la capacità dello stato della sessione ASP.NET in più aree definendo le cache primarie e secondarie in ogni area di Microsoft Azure. Inoltre, specifichi anche l'attributo "sid-prefix", che è preceduto da tutti ID di sessione in ogni area di Microsoft Azure. Questo aiuta NCache per il modulo Azure SSP per identificare quali sessioni ASP.NET appartengono a quale area di Microsoft Azure e quindi NCache per Azure decide di spostare le sessioni ASP.NET quando una richiesta viene reindirizzata a un'altra area di Microsoft Azure.
Ecco una configurazione di esempio da utilizzare NCache per l'archiviazione dello stato della sessione 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> |
Sono inoltre necessarie configurazioni di affinità di posizione per il supporto dello stato della sessione ASP.NET in più aree di Azure.
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> |
Si prega di notare chencache> la sezione in ogni regione di Azure sarà diversa, il che significa che ogni regione avrà la propria "Cache primaria" e definirà tutte le altre cache della regione come "SecondaryCache".
Utilizzo dell'ID sessione per reindirizzare una richiesta a un'altra area di Microsoft Azure
Tutte le sessioni ASP.NET originate da qualsiasi area di Microsoft Azure vengono originariamente archiviate nella cache principale di tale area. Tuttavia, quando una richiesta da un'altra area di Microsoft Azure viene reindirizzata all'area di Microsoft Azure corrente, allora NCache per il modulo SSP multiregione di Azure rileva in modo intelligente che il Stato sessione ASP.NET risiede in una delle altre aree di Microsoft Azure (usando il "prefisso sid" allegato all'ID sessione ASP.NET) e contatta automaticamente la cache secondaria corrispondente nell'area di Microsoft Azure remota e la sposta nella cache primaria nell'area di Microsoft Azure corrente. Tutte le richieste successive vengono quindi servite da questa nuova posizione.
NCache Dettagli NCache Cloud per Azzurro Guida introduttiva
Supponiamo, ad esempio, di aver definito London_Cache come cache principale mentre NewYork_Cache e Tokyo_Cache sono definite come cache secondarie per il sito di Londra. Puoi anche specificare "LDC", "NYC" e "TKC" come prefisso sid che sono allegati a ciascun ID sessione corrispondente rispettivamente alle sessioni London_Cache, NewYork_Cache e Tokyo_Cache. Ora, tutte le sessioni ASP.NET originate dalla regione di Londra hanno "LDC" allegato come prefisso ai loro ID di sessione ASP.NET e sono archiviate e servite da London_Cache, che è la cache principale per la regione di Londra. Ma se una richiesta viene reindirizzata da un'altra area di Microsoft Azure come New York o Tokyo all'area di Londra, questo stato della sessione ASP.NET viene immediatamente identificato in base al prefisso sid e lo stato della sessione ASP.NET viene trasferito da NewYork_Cache o Tokyo_Cache a London_Cache. Tutte le richieste successive vengono servite da London_Cache in locale una volta che lo stato della sessione ASP.NET viene spostato nell'area di Londra.
Conclusione:
NCache per Azure il supporto dello stato della sessione ASP.NET multiregione consente di distribuire le applicazioni ASP.NET in due o più aree di Microsoft Azure attive ed essere in grado di reindirizzare il traffico tra le aree di Microsoft Azure senza influire sulle prestazioni o causare tempi di inattività dell'applicazione. Puoi reindirizzare senza problemi le richieste tra aree di Microsoft Azure per gestire gli overflow di traffico e la manutenzione del sito.
NCache Dettagli Scaricare NCache Confronto edizione