2012-10-02 24 views
7

Tengo una aplicación web escrita con resorte en un servidor embarcadero. debido al equilibrio de carga, tengo que replicar las sesiones de http y los contextos de seguridad de primavera en los servidores web.¿Cómo puedo agrupar una aplicación Spring mvc?

¿Alguien me puede indicar un ejemplo práctico de cómo hacerlo posible?

los controladores de mvc son parte de spring-security-oauth2 por lo que tengo una capacidad limitada para influir en ellos y embarcadero es un requisito previo para nuestro medio ambiente. para la mayoría de los datos y el almacenamiento en caché utilizaremos infinispan.

No pude encontrar ninguna información actual sobre cómo agruparme con la primavera, así que estoy agradecido por cada ayuda.

Respuesta

7
  1. Lo que no tiene estado, las escalas de forma automática (como la mayoría de los granos de la primavera y controladores)

  2. lo que se comparte, debe replicarse o todas las instancias del clúster deben compartir en

    1. Las sesiones HTTP deben replicarse. Si lo son, la seguridad de primavera (que almacena contexto de seguridad en la sesión sólo el trabajo

    2. base de datos solo funcionará - ya sea que usted sólo tiene que utilizar uno o replicarlo así

    3. Infinispan debe manejar la replicación en memoria de cachés

Proporcionar que sólo se almacena Serializable artículos en la sesión HTTP y en cachés, la agrupación de su aplicación sólo debe wo rk. Tenga cuidado con el código sincronizado (¿deberían distribuirse los bloqueos?) Y los beans con estado.

Ver también

+0

Soy consciente de esas cosas, pero no puedo encontrar ningún ejemplo y/o documentación alguna de que se explica cómo configurar la primavera/embarcadero para hacer la réplica de sesiones. – Laures

+1

@Laures: por lo que veo, Jetty (al menos 6) no es compatible con la replicación de sesiones lista para usar. Debe usar alguna solución encima, como Hazelcast, Gigaspace, JGroups, Terracotta, base de datos ... Ver: http://webtide.intalio.com/2011/08/nosql-sessions-with-jetty7-and-jetty8/También considere cambiar a Tomcat, que admite la agrupación desde el primer momento. Desde la perspectiva del marco Spring, no hay nada que tenga que cambiar (excepto su diseño, si es necesario). –

+0

genial. Esperaba que tuviera que crear un bean de tienda de sessión de primavera basado en infinispan/hazelcast y configurarlo en algún lugar del espacio de nombres de mvc. ahora puedo hacerlo directamente en embarcadero ya que cambiar a Tomcat probablemente no sea una opción. – Laures

Cuestiones relacionadas