Provider di stato sessione ASP.NET per NCache nelle Web Farm

Per le distribuzioni locali, ASP.NET Session State offre tre opzioni di archiviazione integrate (InProc, StateServer e SqlServer) e una quarta opzione "Personalizzata". Le prime due opzioni integrate (InProc e StateServer) presentano problemi di scalabilità, mentre l'opzione SqlServer presenta problemi di prestazioni e scalabilità.

Una strategia molto migliore consiste nell'utilizzare l'opzione "Personalizzata" e il plug-in NCache come provider dello stato della sessione ASP.NET. NCache è una cache distribuita Open Source estremamente veloce e scalabile per .NET. Gestisce il carico di transazioni estremo consentendo di aggiungere più server cache in fase di esecuzione e scalare in modo lineare. NCache fornisce anche la replica intelligente della cache in modo da non perdere alcuno stato della sessione ASP.NET se un server Web o un server cache si interrompe.

dottore: Provider di stato sessione ASP.NET per NCache

Provider di stato sessione ASP.NET per NCache

Vantaggi di NCache Provider dello stato della sessione ASP.NET

Innanzitutto, non è necessaria alcuna programmazione da utilizzare NCache come provider dello stato della sessione ASP.NET. Devi semplicemente modificare il tuo web.config e specificare NCache come tuo Session State Provider (SSP). Vedi dettagli su Configurazione del provider di stato della sessione ASP.NET per NCache. Di seguito sono riportati alcuni dei vantaggi per l'utilizzo NCache come provider dello stato della sessione ASP.NET:

  1. Alta disponibilità: NCache ha una architettura di clustering peer to peer autorigenerante senza un singolo punto di errore. Ciò fornisce il 100% di uptime per l'archiviazione dello stato della sessione ASP.NET, che è molto importante per le applicazioni business-critical.

  2. Scalabilità lineare: NCache consente di ridimensionare il cluster di cache in modo lineare aggiungendo più server cache al cluster. Ciò aumenta la tua capacità di transazione e anche la tua capacità di archiviazione. Ciò significa che l'archiviazione dello stato della sessione ASP.NET non diventa mai un collo di bottiglia per l'applicazione in caso di carichi di transazioni pesanti.

  3. Replica intelligente della sessione: NCache fornisce topologie di memorizzazione nella cache avanzate (cache speculare, cache replicata e cache di replica partizione) con replica intelligente della sessione che non compromette le prestazioni e la scalabilità. Ciò garantisce di non perdere alcun dato di sessione quando un server Web o un server cache si interrompe.

  4. Serializzazione compatta e veloce: NCache fornisce un Serializzazione compatta e veloce che è più veloce della normale serializzazione .NET e non richiede alcuna programmazione da usare. Registra semplicemente le tue classi .NET con esso e NCache genera il codice sorgente di serializzazione, lo compila in memoria in fase di esecuzione quando l'applicazione si connette alla cache e quindi utilizza questo codice compilato per tutte le serializzazioni successive.

Supporto per più regioni (data center)

NCache offre due modi per gestire lo stato della sessione ASP.NET per le applicazioni in esecuzione in più aree (data center) e mantenere la coerenza della sessione tra di esse. Sono:

  1. Replica WAN dello stato della sessione ASP.NET: NCache fornisce un Topologia a ponte per consentirti di replicare l'intero archivio dello stato della sessione ASP.NET (la cache distribuita) in un'altra regione (centro dati) attraverso la WAN. Ciò garantisce che le tue sessioni esistano sempre in più regioni (data center). Puoi usarlo in modalità attiva-passiva (per il ripristino di emergenza) o attiva-attiva. In active-active, puoi persino bilanciare il carico del traffico tra più regioni (data center). Tutto ciò avviene tramite modifiche alla configurazione.

  2. Stato sessione ASP.NET multiregione: Se non si desidera replicare lo stato della sessione ASP.NET sulla WAN a causa del costo del consumo di larghezza di banda, è possibile scegliere di utilizzare questo Stato della sessione ASP.NET multisito caratteristica di NCache. In questo, lo stato della sessione ASP.NET non viene replicato tra i siti e viene invece mantenuto nella posizione della sua creazione. Tuttavia, se si sposta il traffico da una regione (data center) a un'altra, lo stato della sessione ASP.NET si sposta con esso.

    Ciò ti consente di avere due o più regioni attive (data center), mantenere la maggior parte del traffico verso il proprio data center ma occasionalmente traboccare all'altro data center, se lo desideri. Inoltre, puoi anche arrestare un data center senza causare interruzioni agli utenti perché le loro sessioni saranno accessibili da altri data center.

Funzionalità avanzate in NCache Provider dello stato della sessione ASP.NET

NCache Il provider dello stato della sessione ASP.NET implementa tutte le funzionalità del provider dello stato della sessione ASP.NET standard. Inoltre, fornisce varie funzionalità avanzate per consentirti di gestire situazioni complesse nelle tue applicazioni.

  1. Condividi sessioni tra domini app: Se stai utilizzando più domini di app e per ogni dominio di app hai un file web.config separato, specifica lo stesso valore in sessionAppId=>"NCacheApp1" e si traduce nella condivisione della sessione tra quei domini dell'app. Se utilizzi un ID app di sessione diverso, le sessioni non vengono condivise tra i domini di app.

  2. Registrazione degli errori: È possibile abilitare la registrazione degli errori in un file di registro sul server Web (in INSTALL_DIR\NCache\log-files\SessionStoreProvider cartella) specificando enableLogs = "true" . È inoltre possibile abilitare la registrazione degli errori nel registro eventi di Windows specificando writeExceptionsToEventLog = "true" .

  3. Blocco della sessione standard: Il comportamento di blocco della sessione ASP.NET standard prevede che se una sessione è bloccata, un'altra richiesta attende 90 secondi (configurabile) e alla fine sblocca forzatamente la sessione. È possibile specificare questa opzione come segue:

     enableSessionLocking = "true" sessionLockingRetry = "-1" emptySessionWhenLocked = "false" 

  4. Blocco della sessione avanzato: Se disponi di un'applicazione ASP.NET ad alto traffico in cui i robot potrebbero eseguire lo scraping dei dati e utilizzare lo stesso ID di sessione per centinaia o migliaia di richieste contemporaneamente, non puoi permetterti l'opzione di blocco della sessione standard perché attendere 90 secondi potrebbe bloccare tutti i socket disponibili. Si desidera invece restituire rapidamente la richiesta per indicare un errore. Puoi specificarlo come segue:

     enableSessionLocking = "true" sessionLockingRetry = "5" emptySessionWhenLocked = "false" 

    Ciò effettua 5 tentativi a intervalli di mezzo secondo e quindi restituisce una sessione vuota per indicare un errore. Anche lanciare un'eccezione qui è costoso. Ecco perché viene implementata una sessione vuota. Questo comportamento è stato originariamente implementato su richiesta da un sito Web di una compagnia aerea ad alto traffico.

Cosa fare dopo?

NCache Dettagli
Scaricare NCache
Richiedi Demo Personalizzata
© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.