Desplegando la misma aplicación web en un cluster Tomcat

Apache Tomcat es uno de los contenedores web más populares, entre otras cosas por su sencillez. Sin embargo, dispone de opciones muy potentes. Una de ellas es el clustering(https://tomcat.apache.org/tomcat-8.0-doc/config/cluster.html ), que permite desplegar aplicaciones en alta disponibilidad, mediante un cluster de contenedores Tomcat.

Un cluster Tomcat proporciona a las aplicaciones:

· Replicación de sesión.

· Replicación de atributos en el contexto.

· Despliegue automático de WARs entre instancias del mismo cluster

Montar un cluster Tomcat puede ser una tarea compleja y dependerá de la topología de nuestro CPD y de nuestra aplicación, podemos encontrar información y una configuración base para el fichero server.xml en: https://tomcat.apache.org/tomcat-8.0-doc/cluster-howto.htm

En esta configuración base podemos observar que la pertenencia al cluster se hace por multicast, de manera que todos los nodos hacen autodescubrimiento por esta via:

Pero también se puede hacer de manera estática indicándole a cada nodo, que el resto de nodos que pertenecen al Cluster:

De entre todas las caracteriticas del Clustering, una de las que me parece más interesante es el despliegue automatico de WARs entre instancias del mismo cluster, ya que con solo desplegar un único WAR, este se replica entre todos los nodos, ahorrando tiempo y evitando inconsistencias de versión.

En la configuración esta opción se realiza en el tag Deployer:

Y es necesario especificar en el web.xml de la aplicación web a desplegar, la opción <distributable />

A continuación vamos a mostrar un ejemplo, configurando un cluster de dos Tomcats, donde configuramos un cluster con la configuración base anterior y modificaremos el tag Deployer, para que un WAR se copie automáticamente en los dos nodos, con solo desplegarlo en el directorio especificado en uno:

1. Configuramos el server.xml del nodo 1 para que escuche el directorio de escucha (C:/apache-tomcat-cluser/nodo1/war-listen) y despliegue en el directorio webapps del Tomcat nodo 1.

2. Configuramos el server.xml del nodo 2 para que despliegue en el directorio webapps del Tomcat nodo 2.

3. Arrancamos ambos nodos:

4. Copiamos un War al directorio de escucha del nodo 1 (C:/apache-tomcat-cluser/nodo1/war-listen) y observamos en ambas consolas como se despliegua dicho war en el cluster:

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s