Provider di sessione ASP.NET Core di NCache

In ASP.NET Core applicazioni, una stato della sessione è essenziale per l'archiviazione di dati specifici dell'utente, ma i provider di sessioni predefiniti possono rallentare in caso di traffico elevato e avere problemi con prestazioni e scalabilità.

Potenzia le sessioni ASP.NET Core

NCache Provider di sessione ASP.NET Core risolve questi problemi fornendo una soluzione di caching distribuita in memoria che garantisce elevata disponibilità, affidabilità e modulabilità per i dati della sessione. Con NCache, l'archiviazione della sessione rimane veloce e reattiva ed elimina la perdita di sessione causata dal riavvio dell'applicazione o da guasti del server.

NCache Diagramma architetturale per l'archiviazione scalabile delle sessioni ASP.NET Core in una web farm.
Figura 1: Architettura distribuita dello stato di sessione di ASP.NET Core che dimostra la scalabilità lineare.

Principali vantaggi dell'utilizzo NCache per le sessioni

  • Aumento delle prestazioni: NCache memorizza i dati delle sessioni in memoria, le applicazioni sperimentano una latenza inferiore al millisecondo e una migliore reattività. Le sessioni vengono recuperate rapidamente senza intaccare i database più lenti, il che garantisce un'esperienza utente fluida.
  • Elevata disponibilità tramite replicazione: Nessun dato di sessione andrà perso. NCache fornisce soluzioni fault-tolerant e altamente disponibili per applicazioni mission-critical, garantendo la replica dei dati di sessione su più server cache e supportando il failover automatico.
  • Scalabilità lineare: Con l'aumento del traffico, puoi semplicemente aggiungerne di più NCache server al cluster. Ciò consente all'archiviazione delle sessioni di scalare dinamicamente senza degrado delle prestazioni, così le applicazioni web saranno in grado di gestire carichi di lavoro crescenti senza problemi.
  • Ottimizzato per la velocità: NCache utilizza un efficiente meccanismo di serializzazione compatto che rende l'archiviazione e il recupero dei dati di sessione incredibilmente rapidi con un overhead minimo.

NCache vs. Provider di sessione SQL predefinito

  • Memoria su disco: In memoria (NCache) vs. Basato su disco (SQL)
  • Scalabilità: Scala lineare (NCache) vs. soggetto a colli di bottiglia (SQL)
  • Chiusura: Blocco distribuito (NCache) vs. Blocco delle righe (SQL)

Configurazione senza interruzioni delle sessioni ASP.NET Core

Integrazione NCache poiché il provider di sessione in ASP.NET Core è semplice. È sufficiente configurarlo nel Programma.cs file utilizzando il seguente frammento:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container
builder.Services.AddControllersWithViews();

// Set up MVC Services
builder.Services.AddMvc();

// Configure NCache Session State
builder.Services.AddNCacheSession(options =>
{
      options.CacheName = "demoCache";
      options.EnableLogs = true;
      options.UseJsonSerialization = true; // To avoid the Binary Format error
      options.SessionAppId = "demoApp";
      options.SessionOptions.IdleTimeout = 5; // Session expires after 5 minutes
      options.SessionOptions.CookieName = "AspNetCore.Session";
});

Con questa semplice configurazione, Sessioni ASP.NET Core vengono archiviati e recuperati senza problemi da NCache, eliminando la necessità di archiviazione delle sessioni basata su SQL. Ancora più importante, ciò non richiede alcuna modifica al codice dei controller esistenti o alla logica applicativa.

Sessioni in più regioni/zone

  • Replica WAN delle sessioni ASP.NET Core: NCache Consente la replica di tutte le sessioni ASP.NET Core su una rete geografica (WAN) verso un'altra regione o data center. Questa funzionalità garantisce che le sessioni non vengano mai perse, anche in caso di interruzione del servizio in una regione o zona specifica.
  • Stato sessione ASP.NET multi-sito: Per gli scenari in cui la replica di tutte le sessioni sulla WAN potrebbe richiedere molta larghezza di banda, NCache offre funzionalità di sessione multi-sito. In questa configurazione, i dati della sessione rimangono nella posizione di origine ma possono spostarsi senza problemi con l'utente se il traffico viene reindirizzato a un'altra regione o zona. Questo approccio di distribuzione attivo-attivo mantiene le applicazioni in esecuzione senza problemi senza inutili repliche di dati.

Sfruttando queste funzionalità, NCache garantisce che la gestione delle sessioni della tua applicazione sia resiliente, scalabile e ottimizzata per le distribuzioni multi-regione.

Funzionalità avanzate della sessione

  • Blocco di sessione distribuito (integrità dei dati): NCache dà un grande controllo su blocco della sessione per evitare conflitti negli aggiornamenti di sessioni simultanee mantenendo al contempo prestazioni elevate.
  • Registrazione diagnostica e monitoraggio: Risolvi facilmente i problemi relativi alla sessione con registri dettagliati. NCache offre un debug approfondito e monitoraggio per far sì che l'archiviazione della sessione funzioni senza problemi.

Casi d'uso nel mondo reale

NCache è ideale per applicazioni ASP.NET Core ad alto traffico, tra cui:

  • Siti di e-commerce: Gestisci milioni di utenti contemporaneamente con l'archiviazione di sessione ad alta velocità, garantendo esperienze di acquisto senza interruzioni.
  • Piattaforme bancarie online: Per supportare transazioni sicure e l'autenticazione degli utenti, forniscono sessioni altamente disponibili e sicure.
  • Applicazioni multi-server: Mantenere la coerenza delle sessioni su più istanze del server, assicurando il corretto funzionamento in ambienti distribuiti.
  • Applicazioni web distribuite: Esegui applicazioni in ambienti cloud e ibridi con replica affidabile delle sessioni, supportando distribuzioni multi-regione.

Inizia con NCache

Integrare NCache Provider di sessione ASP.NET Core oggi stesso e porta la gestione delle tue sessioni a un livello superiore.

Cosa fare dopo

Domande frequenti (FAQ)

Sì, NCache implementa lo standard ASP.NET Core IDistributedCache interfaccia. Questo ti permette di collegare NCache nella tua applicazione come sostituto immediato delle sessioni standard senza modificare il codice del controller esistente.

NCache offre prestazioni significativamente più elevate rispetto a SQL Server memorizzando i dati della sessione interamente in memoria, eliminando i colli di bottiglia dell'I/O del disco. A differenza dei database SQL, NCache offre scalabilità lineare e latenza inferiore al millisecondo, garantendo prestazioni costanti anche durante i picchi di traffico.

No, le sessioni non scadono né scompaiono durante il riavvio dell'applicazione. NCache viene eseguito come servizio out-of-process, quindi i dati della sessione rimangono archiviati in modo sicuro nel cluster di cache distribuita anche se il server Web o il processo dell'applicazione vengono riavviati.

Sì, NCache Supporta la replica WAN per distribuzioni multi-regione. Fornisce la replicazione attiva-passiva per il disaster recovery e la condivisione di sessioni attiva-attiva (multi-sito), consentendo al traffico di spostarsi senza problemi tra le regioni senza perdita di sessione.

© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.