Clusters Java con Terracota

Terracotta es un software Open Source de clusterización para aplicaciones Java, compuesto de dos partes:

  • Un servidor responsable de la administración y de distribuir la información entre los clientes
  • y el propio cliente que publica y recibe información hacia/desde el servidor de terracotta

El servidor se encarga de replicar las instancias de clase entre los miembros del cluster a través del cliente. Para ello, nuestra aplicación debe estar programada a consciencia, y declarar qué clases deben propagarse en un fichero de configuración especial del cluster. La particularidad de este cluster reside en la posibilidad de replicar instancias de JVM y mantenerlas sincronizadas.
Para dotar a nuestras aplicaciones de alta disponibilidad configuraremos el servidor de terracotta en todos los nodos. Compartirán la misma configuración y sabrán cómo conectar al resto de nodos que ejecutan la aplicación Java que queremos clusterizar. Inicialmente se elegirá automáticamente cuál de los nodos se erige como maestro, mediante un algoritmo distribuido propio, dejando el resto de servidores terracotta en modo pasivo. Cuando el maestro de terracotta caiga, otro asumirá el rol de maestro. El problema viene cuando todos los nodos se inicien a la vez, dado que el algoritmo puede tardar en decidir quien se erige como maestro. Esta situación se considerará una situación de desastre y requerirá la intervención de un administrador que inicie primero una de los servidores, y cuando esté arriba, poco a poco iniciar el resto de servidores para que se unan al cluster. Echadle un ojo a este tutorial si quereis empezar a probarlo.

La imagen la he sacado del album de luispabon en flickr

No hay comentarios: