Domanda

Tomcat (versione 5) memorizza le informazioni sulla sessione in memoria.Quando il clustering di queste informazioni è periodicamente trasmettere ad altri server del cluster per mantenere le cose in sincronia.È possibile utilizzare un database store per rendere le sessioni di persistente ma questa informazione è scritto solo periodicamente, come bene ed è veramente solo usato per il mancato recupero piuttosto che la sostituzione in memoria sessioni.

Se non si desidera utilizzare sessioni permanenti (la nostra configurazione non permette purtroppo) si pone il problema delle sessioni di ottenere la sincronizzazione.

In altri linguaggi, framework per il web tendono a consentire l'utilizzo di un database come il principale archivio di sessione.Mentre questo introduce un potenziale problema di scalabilità rende la gestione della sessione molto semplice.Mi chiedo se c'è un modo per ottenere tomcat per l'utilizzo di un database per le sessioni in questo modo (tecnicamente questo sarebbe anche eliminare la necessità per il clustering di configurazione di tomcat server.xml).

È stato utile?

Soluzione

C'è sicuramente un modo.Anche se mi piacerebbe fortemente voto per sessioni permanenti - consente di risparmiare in modo molto carico per i server/database (a meno che qualcosa non funziona)...

http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html ha informazioni su SessionManager di configurazione e di installazione di Tomcat.A seconda della esigenza di implementare il proprio gestore di sessione, ma questo punto di partenza dovrebbe fornire qualche aiuto.

Altri suggerimenti

Guarda Terracotta, Penso possa affrontare il ridimensionamento problemi senza una sostanziale riprogettazione delle applicazioni.

Io sono sempre stato un fan delle Guide sessioni di tecnica:memorizzare le sessioni (zip+criptato+firma) il cookie dell'utente.In questo modo è possibile eseguire il bilanciamento del carico ai vostri cuori contenuto, e non devono preoccuparsi di sessioni permanenti, o colpire il database per i dati di sessione, etc.Non sono proprio sicuro che si potrebbe implementare facilmente in un'applicazione java senza una qualche sorta di riscrittura della sessione-codice di accesso.Comunque solo un pensiero.

Un'altra alternativa potrebbe essere il memcached-session-manager, un memcached basato sessione di failover e la replica della sessione soluzione per tomcat 6.x / 7.x.Supporta entrambe le sessioni permanenti e non permanenti sessioni.

Ho creato questo progetto per ottenere il meglio delle prestazioni e di affidabilità e di essere in grado di scalare da solo l'aggiunta di più tomcat e memcached nodi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top