Sessioni Web Java con NCache

Sessioni sono un modo per memorizzare i dati per utenti distinti. Gli oggetti sessione Java, realizzati sul server delle applicazioni, chiamati contenitori servlet che ospitano l'applicazione Web, all'interno di un servlet Java o di una pagina JSP (Java Server Page) includono Apache Tomcat, WildFly, Oracle WebLogic Server and IBM WebSphere Application Server.

Ad esempio, il server Web Tomcat fornisce la gestione della sessione tramite la replica della sessione su cluster di server Web Tomcat. La replica della sessione può causare un sovraccarico di dati e memoria, rallentando e riducendo le prestazioni e la scalabilità.

Perciò, NCache fornisce un'opzione migliore in cui gli utenti possono archiviare le proprie sessioni Java all'interno della propria applicazione senza alcun problema in una web farm con bilanciamento del carico.

Architettura di caching delle sessioni Web Java utilizzando NCache Provider di sessioni in una Web Farm con bilanciamento del carico per scalabilità lineare.
Gestione scalabile delle sessioni Java con NCache Cluster dinamico.

Contenitori e specifiche servlet Java supportati

NCache offre ai suoi utenti la possibilità di utilizzare diversi tipi di contenitori servlet che possono ospitare facilmente la loro applicazione Web, come discusso di seguito. NCache è conforme alle specifiche Java Servlet 3.1+.

  1. Tomcat Apache: È un'implementazione open source di Java Servlet e Java Server Pages e fornisce anche un ambiente server web HTTP "Java puro" in cui può essere eseguito il codice Java. Fornisce la gestione delle sessioni tramite sessioni sticky.
  2. Volo selvaggio: WildFly è un server applicativo Java EE open source, leggero e ad alte prestazioni sviluppato da Red Hat.
  3. Server Oracle WebLogic: Oracle WebLogic è un server applicativo Java EE utilizzato per lo sviluppo, la distribuzione e l'esecuzione di applicazioni aziendali.
  4. Server di applicazioni IBM WebSphere: IBM WebSphere Server è un server applicativo Java EE che fornisce un ambiente di runtime per la creazione, la distribuzione e la gestione di applicazioni aziendali.

Configurazione del modulo di sessione Java per NCache

Per configurare le sessioni Java, è necessario modificare il file "session.xml" che si trova in %NC_Home%/config in NCache cartella. Di seguito è riportato il codice per cui lo fa NCache. Per ulteriori dettagli sull'aggiunta di librerie, la definizione di filtri e la distribuzione dell'applicazione utilizzando i contenitori servlet, vedere Aggiunta di librerie e definizione di filtri aiuto. NCache sfrutta l'API standard Java Servlet Filter, consentendo di intercettare le chiamate di gestione delle sessioni e di reindirizzarle alla cache distribuita senza richiedere modifiche alla logica dell'applicazione.

<?xml version="1.0" encoding="UTF-8"?>  
   <!--for single regional session provider-->
<servlet-session-config>
    <cache id="myPartitionedCache"/>
    <log log-props="log4j.properties"/>
    <locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
</servlet-session-config>

Perché usare NCache per la gestione delle sessioni Java?

NCache fornisce all'utente un'opzione "nessuna modifica del codice" per le applicazioni Java per mantenere le sessioni in NCache cache distribuita. Se la tua applicazione è in esecuzione in una server farm Web con bilanciamento del carico e hai bisogno di uno storage affidabile e scalabile per la persistenza della sessione, NCache offre i seguenti vantaggi:

  1. La prestazione migliore: NCache fornisce tempi di risposta più rapidi, quindi prestazioni migliorate. Utilizzando NCache Serializzazione compatta: gli oggetti Java vengono serializzati in modo significativamente più rapido rispetto alla serializzazione Java standard, riducendo drasticamente il sovraccarico della CPU e la latenza di rete.
  2. Alta disponibilità: NCache fornisce potenti cluster di cache distribuita senza un singolo punto di errore altamente disponibile il che significa che puoi aggiungere o rimuovere la cache senza interrompere l'applicazione.
  3. Estrema affidabilità: NCache consente all'utente di replicare le sessioni servlet Java su più server in base alla topologia specificata. Topologie come Partitioned-Replica garantiscono che i dati di sessione siano replicati su tutti i nodi, garantendo un uptime del 100% anche in caso di guasto di un singolo server cache, senza compromettere l'affidabilità e le prestazioni. Ecco perché l'utente non perderà alcun dato di sessione anche se il server cache dovesse interrompersi per qualsiasi motivo.
  4. Brillante replica della sessione tramite topologie: NCache fornisce varie topologie di memorizzazione nella cache attraverso le quali persistere le sessioni in base alle proprie esigenze. Ad esempio, si può usare topologia replicata partizionata per una maggiore affidabilità e scalabilità.
  5. Scalabilità lineare: NCache, un in-memory distribuito linearmente scalabile grid, ha la capacità di gestire carichi elevati, motivo per cui le applicazioni di sessione possono ottenere la massima scalabilità possibile.

Come gestire le sessioni Java su più regioni?

La gestione di sessioni su data center distribuiti spesso comporta problemi di latenza e sincronizzazione. NCache risolve questo problema fornendo opzioni flessibili di persistenza multi-sito. Per gestire sessioni di servlet Java su più web farm, geograficamente separate, NCache fornisce la persistenza della sessione multisito nei seguenti modi:

  1. Replica WAN delle sessioni Web Java: NCache consente a un utente di replicare tutte le sessioni Java attraverso la WAN in un'altra regione (data center) che viene eseguita tramite il Topologia a ponte caratteristica di NCache. Ciò garantisce che le sessioni Java non vengano mai perse anche se una regione non funziona.
  2. Sessioni Web Java multisito: Se un utente non desidera replicare le sessioni attraverso la WAN principalmente a causa dell'elevato consumo di larghezza di banda e di possibili problemi di prestazioni, può scegliere di utilizzare il concetto di Supporto per sessioni Java multisito, una caratteristica di NCache. In questo approccio, ogni regione può configurare le proprie cache separate e ogni cache avrà il proprio set di client (servlet Java). La sessione non verrà replicata tra i siti, ma verrà mantenuta nella posizione di creazione.

In questo modo possiamo avere due o più regioni attive separate e un utente può mantenere la maggior parte del traffico nella propria regione. Allo stesso modo, se l'utente abbassa una regione per qualche motivo, non causerà alcun problema perché quella regione sarà accessibile da altre regioni.

Funzionalità avanzate in NCache Sessioni Web Java

Sessioni Web Java per NCache implementa tutte le funzionalità standard fornite da Java Web Sessions. Inoltre, implementa alcune funzionalità avanzate per gestire altre situazioni importanti.

  1. Scadenza della sessione: NCache gestisce la scadenza della sessione e rimuove le sessioni dalla cache per un timeout di sessione specificato. Allo stesso modo, possiamo specificare il valore di timeout della sessione tramite contenitori di servlet e NCache utilizzerà internamente tale intervallo per far scadere le sessioni dalla cache.
  2. Gestione di richieste di sessioni multiple e integrità dei dati: Per evitare la situazione in cui le richieste parallele possono causare la mutazione delle sessioni, NCache fornisce un meccanismo di blocco in modo che nessuna delle due richieste parallele possa modificare la stessa sessione. Puoi specificarlo nel file "session.xml" nel modo seguente:
    <servlet-session-config>
        <locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
    </servlet-session-config>
  3. Gestione della serializzazione dei dati della sessione: Dopo aver inserito gli oggetti Java nelle sessioni del servlet Java e averli archiviati fuori processo, l'intera sessione del servlet Java deve essere serializzata. NCache fornisce una serializzazione più veloce rispetto alla normale serializzazione Java, chiamata Serializzazione compatta. Con questo la velocità della tua applicazione Java aumenta molto.

Cosa fare dopo?

Domande frequenti (FAQ)

NCache migliora le prestazioni spostando i dati della sessione da database lenti e vincolati al disco o da repliche di servlet con sovraccarico a una cache distribuita in memoria. Utilizzando NCache Serializzazione compatta: gli oggetti Java vengono serializzati più velocemente rispetto alla serializzazione Java standard, riducendo significativamente i cicli della CPU e la latenza di rete in ambienti ad alto traffico.

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 un'integrazione "senza modifiche al codice" sfruttando l'API standard Java Servlet Filter. È sufficiente modificare il file di configurazione session.xml in modo che punti al tuo NCache cluster e il filtro intercetta automaticamente le chiamate di gestione della sessione, reindirizzandole all'archivio distribuito.

Per prevenire la perdita di dati o "letture sporche" durante le richieste parallele (come le chiamate AJAX), NCache Implementa un robusto meccanismo di blocco di sessione. Questo garantisce che, mentre una richiesta modifica un oggetto sessione, le altre richieste vengano accodate o gestite in base alla specifica configurazione di blocco, mantenendo una rigorosa coerenza dei dati.

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 Supporta web farm distribuite geograficamente tramite Bridge Topology per la replica WAN. Garantisce un'elevata disponibilità replicando i dati delle sessioni tra i data center. In alternativa, è possibile utilizzare sessioni Java multi-sito per mantenere il traffico locale in una regione, mantenendo al contempo la possibilità di eseguire il failover su un sito diverso in caso di guasto di un data center.

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