Saltar al contenido

Ejecución de Tomcat en entornos de producción

Este enunciado ha sido evaluado por nuestros expertos así se garantiza la exactitud de nuestra esta división.

Solución:

Actualmente estoy usando Tomcat6 como contenedor web en desarrollo y producción.

He oído que Tomcat no es el contenedor web de mejor rendimiento para entornos de producción. Es esto true?

Bueno, de nuevo depende de cómo lo veas. Tomcat puede funcionar muy bien y se utiliza en todas partes de la producción, con la mayor base de usuarios. Algunos servidores de aplicaciones comerciales usan Tomcat bajo el capó sin siquiera decírselo.

Por supuesto, no debe comparar el rendimiento inmediato de Tomcat con un contenedor web bien ajustado. Tomcat se puede ajustar para un rendimiento mucho mejor que en el estado original. Puede buscar en Google: “tomcat production”, por ejemplo, y ver cómo la gente lo gestiona en la producción real y obtener muchos consejos, sugerencias, etc.

¿Tomcat es suficiente en términos de rendimiento y gestión de memoria para usar en entornos de producción?

Sí lo es. Cuando necesite más, hay muchos proveedores que ofrecen la versión comercial de Tomcat, incluida la supervisión y la instrumentación para ayudar a mantener su aplicación en producción.

Nuestros sistemas tienen alrededor de 100 a 400 usuarios.

Tomcat puede manejar más que esto con seguridad. Depende de la naturaleza de su aplicación / sistema, es posible que necesite más de una instancia de Tomcat. En un entorno de producción real, será aconsejable agrupar su Tomcat.

Para mí, se trata más de cómo se escribió la aplicación web y el tipo de operaciones dentro de la aplicación web.

Verdad a medias.

Creo que una buena arquitectura y un buen marco también le ahorrarán mucho tiempo cuando esté a punto de agrupar el Tomcat. Por lo tanto, debe tener un conocimiento general sobre cómo funciona la aplicación de contenedor web, cómo su marco maneja las cosas en un entorno agrupado y cómo se agrupan, antes de decidir cómo establece su pila de marco.

Por ejemplo, pueden surgir problemas de:

  • en la memoria caché en más de una instancia de JVM
  • almacén de sesiones (memoria, base de datos, almacén de archivos) y su replicación

La agrupación de Tomcat en clúster no es una tarea trivial, y establecer su marco de manera incorrecta dificultará la incorporación de Tomcat en clúster más adelante.

Incluso si el rendimiento es un problema en una instancia de Tomcat, ¿es posible agrupar Tomcat?

Sí, es posible agrupar Tomcat. La forma en que diseñe su aplicación determina si su aplicación estará lista fácilmente para la agrupación en clústeres o si será más complicada de agrupar. Es posible que este problema no sea específico de Tomcat, sino de los servidores de aplicaciones en general.

Algunas cuestiones que puede que deba considerar:

  • qué datos almacena en la sesión (HTTP)
  • donde almacenar la sesión
  • mantener viva la sesión
  • utilizar proxy inverso de equilibrio de carga de la aplicación del servidor web, por ejemplo, servidor web Apache + mod_proxy / mod_jk, nginx, Varnish
  • qué conectores Tomcat utilizar (Blocking IO, NIO, APR)

Hay algunos otros problemas, pero creo que puede empezar con ellos.

100-400 usuarios es una implementación relativamente pequeña. Ayudé a los clientes a implementar la solución Tomcat con una base de usuarios registrados mucho más grande (en el rango de millones) o usuarios concurrentes. Ni siquiera creo que se necesite un clúster para su implementación.

Agrupar el servidor Tomcat es bastante simple. Poner un equilibrador de carga frente a los servidores Tomcat. Configurar el Equilibrador de carga con pegajosidad de sesión. Y tendrás un clúster de Tomcat muy agradable. Algunos clientes desean la conmutación por error de la sesión en caso de que una instancia de Tomcat falle y el usuario pueda ser una ruta automática a una segunda instancia sin perder los datos de la sesión. Considero que esto es demasiado para su despliegue. En realidad, el tiempo de inactividad causado por el mantenimiento regular será mucho mayor que la falla del sistema. Tengo servidores Tomcat funcionando durante meses y solo necesito desconectarlos para las principales versiones de código. Pero en caso de que sea necesario, existen paquetes de código abierto que admiten la agrupación en clústeres de sesiones.

Hablando de eso, la mayoría de los problemas de rendimiento de las aplicaciones J2EE se originaron en la propia aplicación en lugar del servidor Tomcat. Estos son los principales problemas de rendimiento de aplicaciones J2EE que más encontré cuando soluciono problemas de rendimiento del sistema cliente. Espero que esto ayude.

Tienes razón, primero piensa en la funcionalidad y luego en el rendimiento. Incluso una instancia de Tomcat servirá lo suficientemente bien para esa cantidad de usuarios. Y sí, es posible agrupar Tomcat.

Recuerda difundir esta división si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *