Agrupación en clústeres y Equilibrio de carga

Qué son la agrupación en clústeres y el equilibrio de carga

La agrupación en clústeres de servidores es un método para convertir varios servidores de equipos en un clúster, que es un grupo de servidores que actúa como un solo sistema.

El equilibrio de carga se refiere a la distribución de cargas de trabajo entre múltiples recursos informáticos, como equipos, clústeres de servidores, enlaces de red, etc. El equilibrio de carga tiene como objetivo optimizar el uso de recursos, maximizar el rendimiento, minimizar el tiempo de respuesta y evitar la sobrecarga de un solo recurso.

Un conjunto de réplicas de MongoDB es un grupo de mongod procesos que mantienen el mismo conjunto de datos. Los conjuntos de réplicas proporcionan redundancia y alta disponibilidad, y son la base para todas las implementaciones de producción.

La alta disponibilidad (HA) es una característica general de un sistema, cuyo objetivo es garantizar un nivel acordado de rendimiento operativo, generalmente tiempo de actividad, durante un período superior al normal.

 Conjunto de réplicas MongDB

RESTHeart siempre ha sido una muy buena opción para Microservicios y otros estilos de arquitectura distribuida. Se ha implementado con éxito con tecnologías de agrupación en clústeres como AWS ECS y Fargate, Kubernetes y muchas otras.

Cómo funciona

RESTHeart básicamente recibe solicitudes HTTP y las transforma en consultas MongoDB, a través del controlador Java. Crear un clúster ha sido cuestión de poner un equilibrador de carga HTTP plano encima de la tecnología de agrupación en clúster elegida, exactamente como se haría con cualquier otro servidor HTTP.

RESTHeart es sin estado para todas las funciones, excepto para el Administrador de tokens predeterminado que se usa para la autenticación de tokens. Esta implementación que viene con RESTHeart OSS mantiene los tokens en memoria. Como resultado, no admite la agrupación en clústeres.

Por lo tanto, un clúster de nodos RESTHeart requiere sesiones adhesivas cuando se usa autenticación de token, de lo contrario, el nodo RESTHeart podría recibir un token de autenticación creado por otra instancia, lo que resulta en un error HTTP 401 “No autorizado”.

Dado que las instancias de RESTHeart no se comunican directamente (para evitar costosos pasos de sincronización), no pueden validar los tokens de autenticación creados por otras instancias del mismo clúster. Para superar esta situación, el Equilibrador de carga HTTP inserta un token de sesión pegajoso en una cookie y, a continuación, gestiona el flujo de comunicación de los clientes a las instancias de RESTHeart en consecuencia. Las sesiones adhesivas, desde un punto de vista arquitectónico, introducen un nivel de estado en el sistema y su tiempo de espera de vencimiento debe ajustarse cuidadosamente.

Capacidades de EE de RESTHeart

La compra de un clúster de licencia comercial de RESTHeart se puede configurar más fácilmente, sin necesidad de sesiones adhesivas. Esto permite una implementación sin estado.

Con la licencia, puede obtener un Administrador de tokens especializado que crea tokens firmados criptográficamente que pueden ser reconocidos por cualquier nodo de RESTHeart en el clúster sin comunicación directa y sincronización entre ellos: rápido, simple y seguro.

Para obtener más información, consulte la página de documentación del Administrador de tokens.

 ALB

En resumen, los pasos de nivel superior para una configuración de alta disponibilidad de RESTHeart + MongoDB son:

  1. Crear un Conjunto de réplicas de MongoDB;

  2. Crear un clúster de RESTHeart conectado al Conjunto de réplicas de MongoDB;

  3. Coloque un equilibrador de carga HTTP encima.

Si desea obtener más información sobre la agrupación en clústeres, el equilibrio de carga y la alta disponibilidad, póngase en contacto con nosotros.

Leave a Reply