4. Configuración de los Clúster y Load Balancer en Mulesoft


Como arquitecto es fundamental que domines el arte de construir y mantener sistemas de alta disponibilidad y sepas cuando utilizar una arquitectura en clúster y/o Load Balancing.

 

Comprendiendo Clústeres y Load Balancing en MuleSoft

Los clústeres en MuleSoft son conjuntos de servidores que trabajan juntos, como una única entidad, para proporcionar alta disponibilidad (HA) y resiliencia. En un clúster, si un nodo experimenta un fallo, el sistema sigue funcionando gracias a los nodos restantes que mantienen viva la aplicación.

 

¿Cómo Funciona un Clúster?

En un clúster MuleSoft, todos los nodos operan en un modelo activo-activo, compartiendo y replicando datos en tiempo real. Existe un nodo primario responsable de tareas específicas como los Schedulers y JMS Listeners. Si este nodo primario falla, otro nodo es elegido automáticamente como el nuevo primario para continuar gestionando las operaciones.

Además, podemos ajustar el tamaño del clúster añadiendo o eliminando nodos según las necesidades de carga, sin tener que re-desarrollar las aplicaciones de Mule. Esto se hace desplegando la aplicación al clúster, y es el propio clúster el que determina en qué nodo se ejecutará la aplicación.

Un aspecto crucial en la gestión de un clúster es el quorum, que es el número mínimo de nodos activos necesarios para procesar las peticiones. Si no se alcanza el quorum, el clúster no aceptará nuevas peticiones, asegurando la integridad y la consistencia de los procesos.

 

Balanceo de Carga y Alta Disponibilidad

Para los escenarios de alta disponibilidad en entornos Customer-Hosted, el Load Balancer es esencial pero se maneja de manera diferente que en un clúster. Mientras que en un clúster hay una memoria distribuida compartida y una conciencia entre nodos, el balanceador de carga distribuye el tráfico sin compartir el estado entre los nodos.

En Mule Standalone, se necesita un balanceador de carga de terceros, ya que MuleSoft no ofrece uno propio fuera de Cloudhub. En entornos como Runtime Fabric, se emplea un balanceador de carga interno basado en Docker/Kubernetes.

 

Resumen de Ventajas y Desventajas

Clustering Balanceo de Carga
Ventajas
  • Memoria compartida y distribuida
  • Ideal para escenarios de alta disponibilidad (HA)
  • Balanceo de carga integrado para colas VM
  • Incorporado en Mule
  • Fácil de configurar
  • Sin sobrecarga de rendimiento por latencia o replicación de datos
  • Algoritmos de balanceo de carga configurables (round-robin, IP sticky, basado en carga, etc.)
Desventajas
  • Sobrecarga de rendimiento debido a la latencia y replicación de datos
  • No es compatible con CloudHub
  • Requiere producto de terceros para lograr balanceo de carga HTTP
  • Requiere producto de terceros
  • Sin sincronización de datos
  • Gestionar la idempotencia de manera programática

 

Conclusión

Entender el funcionamiento de los clústeres y el balanceo de carga en MuleSoft es fundamental para cualquier arquitecto que busca construir sistemas robustos y altamente disponibles. Elegir entre un clúster y una solución de balanceo de carga dependerá de los requisitos específicos de tu aplicación y la infraestructura que tengas a disposición. Con esta guía, estarás bien equipado para tomar decisiones informadas y prepararte para cualquier eventualidad en tu arquitectura MuleSoft.

Deja un comentario

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