Provider di stato sessione ASP.NET per NCache nelle Web Farm
Per le distribuzioni on-premise, 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 StateServer) presentano problemi di scalabilità, mentre l'opzione SqlServer presenta problemi sia di prestazioni che di scalabilità.
Una strategia molto migliore consiste nell'utilizzare l'opzione "Personalizzata" e il plug-in NCache come il tuo 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 intelligente replica della cache in modo da non perdere alcuno stato di sessione ASP.NET se un server web o un server cache si blocca.
NCache Architettura di sessione distribuita per Web Farm ASP.NET.
Vantaggi della NCache Provider dello stato della sessione ASP.NET
Implementazione NCache Poiché il tuo Session State Provider (SSP) non richiede alcuna modifica al codice, segui semplicemente questi passaggi:
Installazione , il NCache Pacchetto NuGet del provider di sessione tramite NuGet Package Manager.
Configurazione il file web.config per utilizzare la modalità di sessione "Personalizzata".
Specificare Your NCache nome del cluster e impostazioni nella configurazione del provider.
Vedi i dettagli sulla configurazione Provider dello stato della sessione ASP.NET per NCacheDi seguito sono riportati alcuni dei vantaggi dell'utilizzo NCache come provider dello stato della sessione ASP.NET:
Alta disponibilità:NCache ha una architettura di clustering peer to peer autorigenerante senza alcun singolo punto di errore. Ciò garantisce il 100% di uptime per l'archiviazione dello stato della sessione ASP.NET, un aspetto molto importante per le applicazioni business-critical. Queste funzionalità di alta disponibilità rendono NCache la scelta preferita per applicazioni mission-critical nei settori dell'e-commerce, dei servizi finanziari e dell'assistenza sanitaria, in cui la persistenza della sessione è fondamentale per l'integrità delle transazioni.
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.
Replica intelligente della sessione:NCache fornisce topologie di memorizzazione nella cache avanzate (cache specchiata, Cache replicatae Cache di replica partizione) con replica intelligente delle sessioni che non compromette prestazioni e scalabilità. Questo garantisce che non si perdano dati di sessione in caso di problemi con un server web o un server cache.
Serializzazione compatta e veloce:NCache fornisce un Serializzazione compatta è più veloce di una normale serializzazione .NET e non richiede alcuna programmazione. Basta registrare le classi .NET con esso e NCache genera e compila automaticamente il codice di serializzazione in fase di esecuzione per un utilizzo efficiente.
Come gestire le sessioni ASP.NET in più regioni (data center)?
NCache Offre due modi per gestire lo stato della sessione ASP.NET per le applicazioni in esecuzione in più regioni (data center), mantenendo comunque la coerenza delle sessioni tra di esse. Sono i seguenti:
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 (data center) attraverso WANCiò garantisce che le sessioni siano sempre presenti in più regioni (data center). È possibile utilizzare questa funzionalità in modalità attiva-passiva (per il disaster recovery) o attiva-attiva. In modalità attiva-attiva, è persino possibile bilanciare il carico del traffico tra più regioni (data center). Tutto ciò avviene tramite modifiche alla configurazione.
Stato sessione ASP.NET multiregione: Se non si desidera replicare lo stato della sessione ASP.NET sulla WAN a causa del costo di consumo della larghezza di banda, è possibile utilizzare Stato della sessione ASP.NET multisito caratteristica di NCacheIn questo caso, lo stato della sessione ASP.NET non viene replicato tra i siti, ma viene mantenuto nella posizione in cui è stato creato. Tuttavia, se si sposta del traffico da una regione (data center) a un'altra, lo stato della sessione ASP.NET si sposta di conseguenza. Questo consente di avere due o più regioni attive (data center), ciascuna delle quali mantiene la maggior parte del proprio traffico locale, ma occasionalmente lo riversa in un'altra regione quando necessario.
Inoltre, è possibile disattivare un data center senza causare interruzioni per gli utenti, perché le loro sessioni saranno accessibili ad altri data center.
Funzionalità avanzate in NCache Provider dello stato della sessione ASP.NET
Migliori NCache Il provider ASP.NET Session State implementa tutti gli standard Provider dello stato della sessione ASP.NET funzionalità. Inoltre, fornisce diverse funzionalità avanzate per consentirti di gestire situazioni complesse nelle tue applicazioni.
Condividi sessioni tra domini applicativi: Se la tua applicazione utilizza più domini applicativi con separati web.config file, impostando lo stesso sessionAppId (ad esempio, "NCacheApp1") in tutti i domini consente la condivisione delle sessioni tra tali domini. Se si utilizza un ID app di sessione diverso, le sessioni non vengono condivise tra i domini dell'applicazione.
Registrazione degli errori: Puoi abilitare registrazione degli errori in un file di registro sul tuo 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".
Blocco della sessione standard: Il comportamento standard di blocco delle sessioni ASP.NET prevede che, se una sessione è bloccata, un'altra richiesta attenda 90 secondi (configurabile) e al termine ne forzi lo sblocco. È possibile specificare questa opzione come segue:
Blocco della sessione avanzato: Se si dispone di un'applicazione ASP.NET ad alto traffico in cui i robot potrebbero estrarre dati e utilizzare lo stesso ID di sessione per centinaia o migliaia di richieste contemporaneamente, non è possibile utilizzare l'opzione standard di blocco della sessione, poiché un'attesa di 90 secondi potrebbe impegnare tutti i socket disponibili. È invece consigliabile restituire la richiesta rapidamente per indicare un errore. È possibile specificare questa opzione come segue:
Vengono effettuati 5 tentativi a intervalli di mezzo secondo e poi viene restituita una sessione vuota per indicare un errore.
Caso d'uso aziendale: Questo comportamento di blocco migliorato è stato progettato specificamente per un sito web di una compagnia aerea ad alto traffico, per impedire l'esaurimento dei socket a livello di sistema durante un intenso scraping dei robot e eventi ad alta concorrenza.
Sì. Configurando un sessionAppId corrispondente nel web.config di ogni applicazione, NCache consente di condividere lo stato della sessione tra diversi domini applicativi. Questa funzionalità è ideale per gli ambienti in cui gli utenti si spostano tra più sottoapplicazioni all'interno della stessa sessione.
Sì. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. NCache è una soluzione "zero-code" per la gestione delle sessioni. È sufficiente modificare il file web.config per cambiare la modalità sessionState in "Custom" e specificare NCache provider. Non è richiesta alcuna ricompilazione dell'applicazione.
NCache utilizza un'architettura di clustering peer-to-peer auto-riparante con replica intelligente delle sessioni. Utilizzando topologie come Partition-Replica, NCache crea un backup di ogni sessione su un nodo diverso, garantendo il 100% di uptime e integrità dei dati anche in caso di inattività di un server web o di cache.
NCache è una cache distribuita in memoria, mentre SQL Server è un database basato su disco. NCache elimina i colli di bottiglia del database e gli elevati costi di serializzazione associati a SQL Server, garantendo scalabilità lineare e tempi di risposta inferiori al millisecondo per il recupero delle sessioni.
Sì. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. NCache fornisce due funzionalità principali per il supporto multi-regione: la replica WAN (tramite Bridge Topology) per il disaster recovery attivo-passivo o attivo-attivo e le sessioni multi-sito, che consentono alle sessioni di rimanere locali per l'utente ma di spostarsi tra i data center se il traffico viene reindirizzato.