Como ZZ Coder ya mencionó el equilibrador de carga es una buena solución, especialmente para grandes despliegues. Para mi propio proyecto utilizo la funcionalidad de proxy HTTP inverso del servidor web nginx. Redirige todos los paquetes http de un contexto web específico (visto desde Internet) a un servidor dentro de mi red.La configuración es muy fácil:
location /best-app-ever/ { proxy_pass host-address:8080/some-app-1.1 root /home/www/some-app-1.1 }
versión de conmutación debe ser suave también. Suponiendo que ya ha implementado una nueva versión de la aplicación simplemente de modificación del archivo de configuración de nginx y aplicar los cambios:
location /best-app-ever/ { proxy_pass host-address:8080/some-app-1.2 root /home/www/some-app-1.2 }
sudo nginx -t
sudo service nginx restart
se le advertirá que, en caso de que su aplicación web es con estado y/o contiene algunos procesos en ejecución o programados, la implementación y el des-despliegue pueden no ser tan fluidos.
¿por qué detener el servidor, actualizar el archivo, reiniciar el servidor y no solo anular la implementación/implementar? Tenemos varios .war webapps en nuestros servidores de producción y, por lo general, solo anulamos/redesplegamos: ¿no es necesario tener todo el servidor con todas las aplicaciones web abajo? – NoozNooz42
@nooz: bueno, solo ejecuto 1 aplicación en el servidor. No pude encontrar tutoriales/guías para volver a implementar con Jetty, todo lo que encuentro es cómo hacer esto para un rápido desarrollo – stephanos
oh, ya veo ... no sé sobre Jetty (quizás otros lo comenten) . Pero con Tomcat hay varias formas de anular la implementación/redistribución de un solo .war (solía hacerlo desde una tarea Ant pero ahora estoy usando la aplicación manager). Esto ahorra el tiempo necesario para apagar/reiniciar Tomcat. – NoozNooz42