Alta disponibilidad en Websphere 7 con clusters y persistencia de sesiones.

04/05/2012

Uno de los factores claves del éxito de Websphere como servidor de aplicaciones J2EE, es la gestión exitosa de la alta disponibilidad con los clusters y la persistencia de sesiones, lo que hace que podamos estar conectado a una aplicación Java a una máquina y aunque caiga, otra máquina soportará el acceso a dicha aplicación y la gestión de la sesión, sin que el usuario tenga que reconectarse, osea transparentemente para el usuario.

Para crear un cluster en Websphere Application Server 7 (WAS 7), debemos tener instalado y habilitado el ND (Network Deployment). El Network deployment nos permite controlar un conjunto de nodos desde una célula común y una consola común. De esta forma, desde una célula puedo administrar un conjunto de nodos y por tanto un conjunto de máquinas de forma transparente. Una vez tengo la célula, desde Application Servers puedo crear un cluster pulsando en New.

Creación del cluster en Websphere Application Server 7

Creación del cluster en Websphere Application Server 7

En el primer paso de creación del cluster nos solicita el nombre lógico del cluster y dos parámetros muy importantes: Prefer local y Create replication domain for this cluster. La primera opción hace referencia a la selección interna de comunicación vía IIOP desde los Web Containers a los EJB Containers y habilita a que si esa comunicación puede hacerse en local, pues mejor que entre servidores. La segunda opción indicamos que se cree un dominio de replicación para la gestión de las sesiones.

Replicación de las sesión y Preferencia Local

Replicación de las sesión y Preferencia Local

En el segundo paso de creación del cluster, nos solicita los nodos que queremos añadir al cluster y por cada nodo tenemos otros dos parámetros muy importantes. Weight indica el peso que tiene dicho nodo dentro del cluster. Habrá nodos que queramos que soporten más sesiones que otros y esa diferenciación la hacemos con el peso. El otro parámetro Generate Unique Http Ports, reconfigura los nodos para que todos escuchen por los mismos puertos dentro del cluster, así la configuración del cluster puede comunicarse con cualquier nodo desde el mismo puerto.

Peso y puertos únicos de los nodos del cluster en Websphere 7

Peso y puertos únicos de los nodos del cluster en Websphere 7

El tercer paso es un resumen para finalizar el cluster. Una vez hecho sólo hace falta ponerlo en marcha seleccionándolo y pulsando en Start y con eso ya tendremos el cluster en marcha.

Resumen del cluster

Resumen del cluster

Si vemos la imagen de la arquitectura del cluster, vemos que inicialmente tenemos los balanceadores de carga, que pueden ser routers, o un software como los Edge Components de IBM. Tanto uno como otro, seleccionan el servidor/es de WAS dependiendo de algoritmos de enrutado internos o por ejemplo DNS Round Robin. Seguidamente la selección pasa a los Servidores Web (IHS Servers) los cuáles a través del plugin saben qué servidores están disponibles. Ahí usan también el parámetro del peso (Weight) si todos los servidores del cluster están online. La última selección la hace el procololo IIOP para la comunicación interna entre los Contenedores Web y los Contenedor de EJBs. Prefiere pasar la sesión y conexión entre contenedores en la misma máquina del cluster que entre máquinas distintas con el parámetro (Prefer Local).

Arquitectura de Cluster y sesiones en Websphere 7

Arquitectura de Cluster y sesiones en Websphere 7

Este cluster tal y como lo tenemos configurado, nos permitirá tener alta disponibilidad, ya que los usuarios son redirigidos a sus servidores donde han iniciado la sesión (Afinidad de la sesión), pero ¿Qué pasa cuando uno de los servidores falla?

Si un servidor falla, los plugins de los servidores web (IHS) se dan cuenta y redirigen a otro servidor online del cluster, pero evidentemente el usuario pierde la sesión y tiene que reconectar otra vez a la aplicación.

Para que esto no ocurra, podemos habilitar la persistencia de sesiones, que hará que la sesión de los usuarios se “almacene o comparta” entre todos los nodos del cluster, así el usuario no tiene que volver a reconectarse a la aplicación. Para hacer esto, en la configuración de los servidores, en la opción Session Management, existe una opción denominada Distributed environment settings que nos permite configurar la persistencia de las sesiones. Websphere nos permite administrar la persistencia de dos formas:

Persistencia de sesiones en Websphere 7

Persistencia de sesiones de Websphere 7 en base de datos o en replicación de memoria entre nodos. 

Almacenando la sesión en una base de datos (opción Database) en la cuál nos pedirá un datasource de una conexión con una base de datos, preferiblemente DB2, o almacenando la sesión en todos los servidores (opción Memory to Memory Replication), la cuál se encargará automáticamente de replicar entre todos los nodos del cluster, las sesiones de los usuarios. Esta última opción es la que mejor rendimiento proporciona ya que la replicación se hace mediante mensajería interna del propio WAS. Para ello previamente en el entorno debemos haber creado el dominio de replicación de todas las sesiones de los nodos del cluster.

3 comentarios to “Alta disponibilidad en Websphere 7 con clusters y persistencia de sesiones.”


  1. Excelente artículo. Muchas gracias

  2. Miguel Says:

    ¿Qué configuraciones deberán hacerse en la aplicación WEB para que esto sea soportado?


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

A %d blogueros les gusta esto: