Dado que JavaServer Faces es inherentemente con estado en el lado del servidor, ¿qué métodos se recomiendan para escalar horizontalmente una aplicación JSF 2.0?Escalado horizontal de la aplicación JSF 2.0
Si una aplicación se ejecuta varios servidores JSF, puedo imaginar los siguientes escenarios:
- Sesiones Sticky: enviar todas las peticiones que coinciden con un determinado período de sesiones en el mismo servidor.
- Pregunta: ¿Qué tecnología se utiliza comúnmente para lograr esto?
- Problema: servidor falla resulta en la pérdida de sesiones ... y parece por lo general como la arquitectura frágil, especialmente al inicio fresco (no tratando de escalar una aplicación existente)
- Estado de replicación (Sesión): replicar JSF estado en todos los servidores JSF en clúster
- Pregunta: ¿Qué tecnología se utiliza comúnmente para lograr esto?
- Problema: no escala. memoria total del clúster = memoria total en el servidor más pequeño
- Indique a JSF (mediante configuración) que almacene su estado en un recurso externo (por ejemplo, otro servidor que ejecuta una base de datos en memoria muy rápida), luego acceda a ese recurso desde Servidores JSF cuando se necesita el estado de la aplicación?
- Pregunta: ¿Esto es posible?
- ¿Instalar JSF (vía configuración) para ser apátrida?
- Pregunta: ¿Esto es posible?
[EDIT]
Actualizado en respuesta a la sugerencia de Sticky Sesiones
Gracias @Ravi, he actualizado mi pregunta en consecuencia. Pero, en mi opinión, esto es más una solución de curita que una solución arquitectónica. –
Sí, si un nodo falla, entonces todas las sesiones en ese nodo se pierden. – Ravi