Libro / recurso sobre cómo configurar el equilibrio de carga y la conmutación por error para la aplicación web Java basada en Servlet [cerrado]
-
07-07-2019 - |
Pregunta
Estamos creando un sistema web utilizando la tecnología Java y Servlet (en realidad Wicket para la capa de presentación) y necesitamos que nuestro sistema esté disponible casi siempre, ya que nuestros clientes dependerán bastante de él.
Esto nos ha llevado a buscar un buen libro centrado en el tema u otro recurso que explique cómo configurar una arquitectura más redundante y segura para nuestro sistema.
Una lista no exclusiva de preguntas que tenemos en este momento:
- ¿Cómo tiene un nombre de dominio (como http://www.google.com ) que son en realidad atendido por varios servidores con equilibrio de carga para distribuir los usuarios ¿No hay siempre un punto que sea más débil en tal solución (los dos [como no puede haber más] servidores DNS para google.com en su caso)?
- Parece una buena idea tener varios servidores de bases de datos para redundancia y equilibrio de carga. ¿Cómo se configura eso?
- Si uno de nuestros servidores web deja de funcionar, nos gustaría tener algún tipo de conmutación por error y dejar que los usuarios usen uno que todavía esté activo. Entre otras cosas, las sesiones tienen que sincronizarse de alguna manera. ¿Cómo se configura eso?
- ¿Necesitamos algún tipo de transacciones sincronizadas también?
- ¿Amazon Computer Cloud es una buena opción para nosotros? ¿Cómo lo configuramos allí? ¿Hay alguna alternativa que sea rentable?
- ¿Necesitamos ejecutar en un contenedor Java EE como JBoss o Glassfish?
Solución
Con respecto a GlassFish, la administración centralizada a través de la GUI de administración es una gran ayuda para entornos con más de una instancia de servidor de aplicaciones para administrar. " Siempre disponible " está sobrecargado Puede ser disponibilidad de servicio sin retención de sesión en caso de falla, o puede significar disponibilidad de datos con información de sesión respaldada. Por supuesto, GlassFish puede hacer ambas cosas. Un par de recursos que pueden ser de ayuda con respecto a GlassFish y la alta disponibilidad:
Guía para la alta disponibilidad de GlassFish: http://www.sun.com/offers/details/glassfish_HAref_config.html
Configuración de un grupo de GlassFish en 10 minutos: http://blogs.oracle.com/jclingan/entry/glassfish_clustering_in_under_10
John Clingan, gerente de productos de GlassFish Group
Otros consejos
Este es probablemente un enfoque simplista, pero recientemente he implementado un tipo similar de equilibrio de carga y solución de alta disponibilidad.
Mi aplicación tenía Tomcat como contenedor web y base de datos MySQL. He presentado Tomcat con el servidor Apache Http y he usado el módulo Apache mod_jk2 como interfaz para manejar el equilibrio de carga y la conmutación por error.
Hay muchos recursos disponibles en la web a partir de la documentación de Apache. Aquí hay algunos:
http://tomcat.apache.org/connectors-doc/reference /workers.html
http: //www.redhat .com / docs / manuales / rhaps / jonas-guide / s1-load-balancecing.html
http://tomcat.apache.org/connectors-doc/webserver_howto /apache.html
Para MySQL, consulte el proxy MySQL para el equilibrio de carga y la conmutación por error. Es una buena idea tener más de un servidor de base de datos para el equilibrio de carga y la conmutación por error. un conjunto de bases de datos puede ser para lecturas y el otro conjunto para escrituras. Dependiendo del volumen, es posible que desee asignar más / menos servidores para lectura / escritura. La documentación de su base de datos también podría ayudarlo en la configuración.
HTH.
Un amigo mío dice que Crear sitios web escalables es lo definitivo libro sobre el tema:
Arquitecturas de Internet escalables de Theo Schlossnagle también pueden ser de interés.
Acabo de leer Arquitectura de soluciones empresariales: patrones para sistemas basados ??en Internet de alta capacidad . Excelente introducción para mí sobre escalabilidad, disponibilidad, rendimiento, seguridad y muchos otros aspectos para sistemas empresariales