Es allí una manera de especificar una sesión diferente de la tienda con Tomcat?

StackOverflow https://stackoverflow.com/questions/82340

  •  01-07-2019
  •  | 
  •  

Pregunta

Tomcat (versión 5) almacena la información de la sesión en la memoria.Cuando la agrupación esta información periódicamente se difunden a otros servidores en el clúster para mantener las cosas en la sincronización.Puede utilizar una base de datos de la tienda para hacer sesiones persistentes pero esta información sólo está escrito periódicamente así y solo se usa para el fracaso de la recuperación en lugar de la sustitución de la memoria en las sesiones.

Si usted no desea utilizar sticky sessions (nuestra configuración no permite por desgracia) esto plantea el problema de las sesiones de salir de la sincronización.

En otros lenguajes, frameworks web tienden a permitir el uso de una base de datos como el principal período de sesiones de la tienda.Mientras que esto introduce un potencial de escalamiento problema es que hace de la gestión de la sesión es muy sencillo.Me pregunto si hay una manera de conseguir tomcat para utilizar una base de datos para las sesiones de esta manera (técnicamente esto también elimina la necesidad de cualquier agrupación en clústeres en la configuración de tomcat server.xml).

¿Fue útil?

Solución

Definitivamente hay una manera.Aunque me gustaría fuertemente votar por sticky sessions - guarda mucho de la carga de los servidores de base de datos (a menos que algo falla)...

http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html tiene información sobre SessionManager de configuración y de instalación de Tomcat.Dependiendo de sus requisitos exactos que usted podría tener que implementar su propio administrador de sesión, pero este punto de partida debe proporcionar un poco de ayuda.

Otros consejos

Echa un vistazo a Terracota, Creo que puede satisfacer las cuestiones de escala sin una de las principales aplicaciones de rediseño.

Siempre he sido un fan de los Rieles de las sesiones de técnica:la tienda de las sesiones (en zip+cifrado+firmado) en el usuario de la cookie.De esa manera usted puede hacer balanceo de carga a su contenido de los corazones, y no tiene que preocuparse acerca de sticky sessions, o golpear la base de datos para los datos de la sesión, etc.Es solo que no estoy seguro que se puede implementar fácilmente en una aplicación java sin algún tipo de reescritura de la sesión código de acceso.De todos modos sólo un pensamiento.

Otra alternativa sería la memcached-session-manager, memcache basada en conmutación por error de sesión y sesión de solución de replicación para tomcat 6.x / 7.x.Es compatible tanto con el sticky sessions y no pegajoso sesiones.

He creado este proyecto para obtener el mejor rendimiento y la fiabilidad, y ser capaz de escalar por sólo añadir más tomcat y memcached nodos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top