servlet prácticos mundo llamar hola ejemplos ejemplo desde con java tomcat deployment embedded-jetty

java - prácticos - llamar servlet desde jsp



Despliegue del servlet Java: para incrustar o no-Tomcat/Jetty (3)

Tengo varios webapps desplegados en producción. He usado Tomcat como mi motor de servlet durante ~ 10 años. Estoy considerando pasar a incrustar el modelo Jetty del modelo deploy-a-war-into-Tomcat.

Estos webapps se implementan en varios servidores y algunos de ellos se escalan horizontalmente (usando partición basada en hash IP de nginx).

Veo algunas ventajas:

  • Puedo configurar mi motor de servlet para una aplicación web específica (en lugar de tener una configuración genérica para Tomcat que ejecuta varias aplicaciones diferentes)

  • Es más fácil escalar horizontalmente mi aplicación web ejecutando varias instancias Jetty (configuradas para escuchar en diferentes puertos) en el mismo host. También podría hacer esto con Tomcat (y he ejecutado varias instancias de tomcat en el mismo host en el pasado), pero he pasado a usar paquetes Debian (archivos .deb) para la implementación y no es tan fácil ejecutar múltiples Tomcats usando este método.

  • Mi paquete de implementación (.deb) está más "completo" en el momento de la compilación, es decir, no tengo que estar seguro de que la instancia de Tomcat esté configurada correctamente.

Y desventajas:

  • Más instancias de un motor de servlet ejecutándose en un servidor significa que se utilizan más recursos

  • Nunca he usado Jetty. No creo que tenga algo específico de Tomcat en mis webapps, pero no estoy seguro.

Mi principal preocupación es la cantidad de recursos que usará Jetty. Si tuviera una instancia de Tomcat ejecutando 4 webapps, ¿cuál será la diferencia en recursos (memoria / procesador) con cuatro instancias de Jetty en ejecución?

Esta pregunta probablemente sea demasiado abierta, pero tengo curiosidad por saber si estoy pasando por alto algo o si alguien tiene alguna experiencia al pasar de Tomcat a Jetty (incrustado).


También estaba acostumbrado a Tomcat, así que en mi nuevo proyecto intenté usar Jetty para conocerlo.

En un entorno empresarial (donde tienes servidores de producción / pruebas / desarrollo) me quedaría con Tomcat, principalmente porque te ayuda a separar el código de los archivos de configuración (ahora estoy trabajando en configurar los archivos conf en un contenedor separado, porque De esa forma, cuando muevo los cambios de las pruebas a la producción, no es necesario que actualicen manualmente las jarras que pasaré a sysadmin.

Otro problema es que parece que Jetty ha cambiado de propietario no hace mucho tiempo, y buscar información a menudo me llevó a la versión anterior.

Aparte de eso, usar Jetty no es tan diferente de Tomcat; tuve que correr un poco a través de los documentos para encontrar dónde está todo, pero la estructura es (como lo último que he visto, no he probado nada demasiado complicado) más o menos como Tomcat.


El contenedor web que he encontrado más fácil de incrustar en un archivo jar (y todavía es un WAR válido) es Winstone ( http://winstone.sourceforge.net/ ).

Jenkins - http://jenkins-ci.org/ - usa este contenedor por lo que ha sido bastante probado. Tenga en cuenta que solo se trata de Servlet 2.4.


Bueno, creo que no hay una respuesta directa;

Puede que no entienda completamente la parte ".deb" ya que no soy un fanático de Debian :)

Prefiero tener una instancia de tomcat con varias configuraciones, también conocidas como carpetas CATALINA_HOME, donde puedes especificar aplicaciones y puertos en ejecución, para que siempre puedas tener todas tus configuraciones por separado y cambiar la instancia de tomcat si es necesario.

Además, consulte la publicación relacionada: Embarcadero: para incrustar o no incrustar?