2010-05-12 11 views
6

Tengo un escenario en el que tengo un solo punto de entrada Servlet y otros servlets cuyas solicitudes se envían a aquellos que realizan un procesamiento intenso.RequestDispatcher reenviar entre instancias de Tomcat

Estoy buscando opciones para distribuir esta carga y me gustaría saber si es posible usar Tomcat u otra plataforma para reenviar solicitudes entre servlets instalados en servidores diferentes utilizando una configuración de tipo de clúster o similar.

He encontrado algo de documentación sobre el agrupamiento de Servlets y Tomcat, pero ninguno indica si el reenvío de solicitud de Servlet es posible por lo que puedo ver.

http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/web-tier/web-tier5.html

http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html

Respuesta

5

Se podría distribuirlo a través de aplicaciones web en un entorno en clúster de Tomcat y añadir crossContext="true" al elemento <Context> de las aplicaciones web en cuestión. He aquí un extracto de Tomcat's Context Configuration Reference:

crossContext

Conjunto de true si desea que las llamadas dentro de esta aplicación para ServletContext.getContext() regresar con éxito un despachador de solicitud de otras aplicaciones web que se ejecutan en este host virtual. Establecido en false (valor predeterminado) en entornos de seguridad consciente, para hacer getContext() siempre devuelva null.

esta manera se puede obtener el RequestDispatcher deseada de la siguiente manera:

RequestDispatcher dispatcher = getServletContext().getContext(name).getRequestDispatcher(path); 
Cuestiones relacionadas