2012-08-02 19 views
5

Estoy trabajando en un proyecto de webapp y estamos considerando implementarlo en varios servidores.Spring + Load balanceing/Clustering

¿Qué solución recomienda para el agrupamiento/equilibrio de carga con Spring?

¿Cuáles son los problemas a tener en cuenta?

Por ejemplo: ¿Cómo se comportan únicos en un grupo de máquinas? ¿Qué pasa con la replicación de sesión? ¿Hay algún otro problema para tener en cuenta?

Respuesta

10

Aquí está la lista de temas posibles (no necesariamente relacionados con la primavera):

  • beans con estado - si sus granos tienen estado, como colecciones acumular algo o contadores, es necesario pensar si este el estado debe ser replicado o no. P.ej. ¿este contador debe ser local a una JVM o global en todo el clúster? En este último caso considere y

  • sistema de archivos - siempre y cuando todas las instancias usan la misma base de datos, todo está bien. Pero si un nodo escribe en el disco, otra instancia no puede leerlo. Soluciones? Utilice la base de datos para todos los sistemas de almacenamiento o de archivos distribuidos

  • Sesiones HTTP - use sesiones fijas o replique sesiones. Si opta por la replicación, mantenga las sesiones lo más pequeñas posible.

  • trabajos asincrónicos - si tiene un trabajo que se ejecuta cada hora, ¿debe ejecutarse en cada máquina, o solo en una dedicada (o tal vez al azar)?

+0

Gracias Tomasz! Una última pregunta: ¿qué ocurre con los singletons de Spring en un entorno agrupado? – balteo

+2

@balteo: nada, cada aplicación de Spring crea exactamente una instancia, por lo que obtienes una instancia de singleton por nodo. –

+0

¡Gracias por tu contribución! – balteo