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]

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

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?
¿Fue útil?

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

El wiki de Liferay tiene un entrada de guía de alta disponibilidad que describe una arquitectura que podría servir como punto de partida.

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

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