Explicación del equilibrador de carga: diseño del sistema 07

diseño-de-sistema-diseño-de-sistema 07-componentes-de-diseño-de-sistema-qué-es-el-equilibrador-de-carga-hogantech-hoganblab

¿Qué es un equilibrador de carga?

Por lo general, en un gran centro de datos, puede haber millones o incluso decenas de millones de solicitudes de otros servidores o clientes por segundo. Para manejar este tráfico de manera efectiva, debemos administrar y equilibrar este tráfico, y el equilibrador de carga es un módulo de este tipo, ¡especialmente diseñado para manejar este tipo de problema de tráfico grande!

El equilibrador de carga distribuye principalmente todas las solicitudes de los usuarios a los servidores correspondientes en función de la carga actual del servidor. La ventaja de esto es evitar la sobrecarga o caída del servidor. Sin embargo, también puede pensar en ello aquí. Si el tráfico del sistema actual no es alto, solo unos pocos miles de solicitudes por segundo, es posible que no sea necesario un equilibrador de carga. hay que considerar más cosas.

Funciones del equilibrador de carga

Si un balanceador de carga es un elemento diseñado para manejar un gran tráfico, ¿qué características debería tener el balanceador de carga?

Escalabilidad (Escalabilidad)

de acuerdo a Introducción al diseño de sistemas modernos – Diseño de sistemas 01 Se mencionó que un buen sistema debe considerar la escalabilidad, porque cuanto más grande es el sistema, más servidores o componentes requiere. El balanceador de carga tiene la característica de que es un componente que se puede ampliar o reducir, por lo que se puede ampliar según el sistema actual.

Disponibilidad (Disponibilidad)

La llamada disponibilidad significa que si algunos servidores del sistema fallan, todo el sistema no dejará de funcionar. Los balanceadores de carga pueden manejar eficazmente este tipo de problema, porque los balanceadores de carga pueden determinar qué servidores están sobrecargados o inactivos y redirigir el tráfico a servidores que funcionan normalmente, evitando así fallas del sistema o incluso interrupciones.

Actuación

Para un equilibrador de carga, una tarea muy importante es garantizar que cada servidor esté distribuido uniformemente. Básicamente, no habrá problemas de tráfico excesivo en un servidor específico. Esta característica puede garantizar que el usuario obtenga un tiempo de respuesta más rápido.

¿Cómo funciona un equilibrador de carga?

Primero echemos un vistazo a cómo funciona el servidor sin un equilibrador de carga.

diseño-de-sistema-diseño-de-sistema 07-componentes-de-diseño-de-sistema-equilibrador-de-carga-qué-es-el-equilibrador-de-carga-hogantech-02

Como se mencionó anteriormente, sin un balanceador de carga, el tráfico se dirigirá a un servidor específico y el cliente se retrasará.

diseño-del-sistema-diseño-del-sistema 07-componentes-del-diseño-del-sistema-qué-es-el-equilibrador-de-carga-hogantech-01

Por el contrario, si se coloca un equilibrador de carga en el medio, el tráfico se puede equilibrar eficazmente hacia el servidor correspondiente.

Balanceador de carga de AWS explicado

Aquí proporcionamos el diagrama esquemático de AWS para explicar y adjuntamos la fuente y la fuente.

diseño-del-sistema-diseño-del-sistema 07-componentes-del-diseño-del-sistema-qué-es-el-equilibrador-de-carga-hogantech-03

El siguiente es el texto traducido del texto original de AWS:

Las empresas suelen ejecutar sus aplicaciones en varios servidores. Este tipo de disposición de servidores se denomina granja de servidores. Las solicitudes de los usuarios a la aplicación van primero al balanceador de carga. Luego, el equilibrador de carga enruta cada solicitud al único servidor del clúster de servidores que sea más adecuado para manejar la solicitud.

El equilibrio de carga es como lo que hace el gerente de un restaurante. Considere un restaurante con cinco camareros, si a los clientes se les permite elegir a sus camareros, uno o dos camareros pueden estar sobrecargados mientras otros permanecen inactivos. Para evitar esto, los gerentes de restaurantes asignan a los clientes a camareros específicos que son los más adecuados para atenderlos.

Cómo funciona un equilibrador de carga

El equilibrio de carga lo maneja el equilibrador de carga, por lo que se puede dividir en dos partes. La primera es la herramienta del equilibrador de carga y la segunda es la cuestión del equilibrio de carga.

equilibrador de carga

La primera es que los balanceadores de carga pueden ser hardware o software. Si se trata de un equilibrador de carga de hardware, es necesario instalar un dispositivo de equilibrio de carga dedicado, mientras que si se trata de un equilibrador de carga de software, puede funcionar en servidores, máquinas virtuales y nubes. una vez en Introducción al bloque de construcción de componentes de diseño de sistemas: diseño de sistemas 05 La red de entrega de contenido (CDN) mencionada generalmente también tiene una función de equilibrio de carga. En el futuro, dedicaré un artículo que explica correctamente la CDN.

Algoritmos de equilibrio de carga

Cuando un usuario envía una solicitud, el equilibrador de carga pasa la solicitud a través de diferentes algoritmos para determinar qué servidor manejará la solicitud. Estos algoritmos se pueden dividir en dos categorías principales: algoritmos de equilibrio de carga estáticos y algoritmos de equilibrio de carga dinámico.

Algoritmos de equilibrio de carga estático

El algoritmo de equilibrio de carga estático realiza el equilibrio de carga según el algoritmo promedio y no considera el estado actual del sistema. Para decirlo sin rodeos, el equilibrio de carga estático no conoce el estado del servidor y no puede decidir si importar tráfico en función de si el servidor está sobrecargado o inactivo. En cambio, la carga se distribuye a través del plan basándose en él desde el principio. La ventaja de esto es que es muy fácil de configurar y comprender el equilibrio de carga, pero, por supuesto, la desventaja es que conducirá a una baja eficiencia.

Uno de los métodos de equilibrio de carga estático más comunes es Round Robin (RR). Este algoritmo es bastante común en los sistemas operativos y en la programación de CPU, como sugiere el nombre, ejecuta las tareas correspondientes por turnos según la cantidad de tiempo. Para explicar el algoritmo Round Robin con más profundidad, aquí también se proporcionaWikipediaejemplo.

En un sistema con una duración de intervalo de tiempo de 100 milisegundos, considere los procesos enumerados en la siguiente tabla:

diseño-de-sistema-diseño-de-sistema 07-componentes-de-diseño-de-sistema-qué-es-el-equilibrador-de-carga-hogantech-04
diseño-de-sistema-diseño-de-sistema 07-componentes-de-diseño-de-sistema-qué-es-el-equilibrador-de-carga-hogantech-05
diseño-de-sistema-diseño-de-sistema 07-componentes-de-diseño-de-sistema-qué-es-el-equilibrador-de-carga-hogantech-06

Algoritmos de equilibrio de carga dinámico

El algoritmo de equilibrio de carga dinámico considerará el estado actual de cada servidor, incluyendo: disponibilidad, condiciones de carga de trabajo y condiciones de operación del servidor.

Y transferirá el tráfico de servidores sobrecargados o de bajo rendimiento a servidores que no estén completamente cargados. Esto tiene la ventaja de distribuir el tráfico de manera uniforme y más eficiente. Sin embargo, la desventaja es que es difícil lograr el equilibrio de carga dinámico. Muchos factores diferentes afectarán la disponibilidad del servidor, como: el funcionamiento del servidor, la capacidad de la memoria del servidor y el tamaño de las solicitudes de los clientes.

Aquí también proporcionamos varios algoritmos de equilibrio dinámico comunes para los lectores, que incluyen conexión mínima, conexión mínima ponderada, equilibrio de carga basado en recursos y equilibrio de carga de ubicación geográfica (equilibrio de carga basado en geolocalización).

Equilibrio de carga global y local

Mencionamos anteriormente qué es un balanceador de carga y cómo funciona. A continuación, hablemos de los tipos de balanceadores de carga. Básicamente, se pueden dividir en balanceadores de carga globales (Global Server Load Balancing) y balanceadores de carga locales (Local Load Balancing). . Si simplemente toma el significado literal, no es difícil ver que el equilibrio de carga global es responsable del equilibrio del tráfico en múltiples ubicaciones geográficas, mientras que el equilibrio de carga local es responsable del equilibrio del tráfico en un gran centro de datos.

Equilibrio de carga global del servidor

La tarea principal del equilibrio de carga del servidor global es equilibrar y distribuir el tráfico global a diferentes centros de datos grandes. Por ejemplo: el tráfico de usuarios de EE. UU. se distribuye a centros de datos en Norteamérica a través de GSLB. El equilibrio de carga del servidor global puede decidir a qué centro de datos geográfico dirigir el tráfico en función de la ubicación geográfica actual del usuario y el estado de los diferentes centros de datos.

Otro ejemplo: si un usuario está en Tokio y está utilizando un servicio web con servidores en Nueva York, tanto la solicitud como la respuesta tienen que recorrer una gran distancia, lo que provoca importantes retrasos en los tiempos de carga.

Al utilizar GSLB, la agrupación global de servidores garantiza que cada usuario pueda conectarse a un servidor que esté geográficamente cerca de él, minimizando los saltos y los tiempos de transferencia. En este ejemplo, si una empresa con sede en Nueva York utiliza GSLB, los usuarios en Tokio pueden conectarse a un servidor más cercano a su ubicación, lo que resulta en una experiencia de usuario más rápida.

GSLB a DNS

Artículo anterior ¿Qué es DNS? Introducción al sistema de nombres de dominio – Diseño del sistema 06 DNS se explica en profundidad, pero en realidad su funcionamiento está relacionado con el concepto de equilibrio de carga. DNS reordena la lista de direcciones IP en respuesta a cada consulta de DNS y diferentes usuarios también obtendrán una lista de ubicaciones de IP. Los usuarios también enviarán solicitudes a diferentes servidores para manejar sus solicitudes, por lo que DNS también distribuye el tráfico de solicitudes a diferentes centros de datos a través del equilibrio de carga global del servidor.

Equilibrio de carga local

El equilibrio de carga local es un equilibrio de carga limitado al centro de datos y el alcance está limitado a un centro de datos. Sin embargo, es esencialmente lo mismo que un equilibrador de carga, que asigna tráfico a los servidores correspondientes mediante diferentes algoritmos.

Implementación del balanceador de carga

La introducción inicial mencionó que los balanceadores de carga se pueden dividir simplemente en hardware, software y balanceadores de carga en la nube. La siguiente es una introducción a la implementación de los tres:

Equilibrador de carga de hardware

Los balanceadores de carga existen desde hace 30 años y los balanceadores de carga se implementaron originalmente en hardware. Por supuesto, al principio era muy costoso construir un equilibrador de carga utilizando hardware, pero la ventaja era que podía manejar las necesidades del tráfico del usuario en ese momento. Sin embargo, en los tiempos modernos, los balanceadores de carga de hardware no son necesariamente la primera opción para las empresas. La principal desventaja es que los balanceadores de carga de hardware dependen mucho del hardware, requieren altos costos operativos y de mantenimiento y también deben lidiar con problemas de compatibilidad de hardware.

equilibrador de carga de software

En comparación con el hardware, los balanceadores de carga de software tienen varias características adicionales: alta flexibilidad, programabilidad y bajo costo. Los balanceadores de carga de software también se están volviendo cada vez más populares entre las empresas porque son altamente escalables y pueden configurarse rápidamente a medida que el sistema crece.

equilibrador de carga en la nube

Por supuesto, además del software, con la aparición de los tres principales proveedores de servicios en la nube, los balanceadores de carga ahora también pueden utilizar servicios en la nube. Entre ellos, en este momento también apareció el servicio y equilibrador de carga (LBaaS). Por supuesto, si estás interesado en otros nombres propios, como IaaS, PaaS y SaaS, puedes leer este artículo. Explique qué son IaaS, PaaS y SaaS de Zeabur. ¡Introducción al modelo de servicio en la nube!.

El mayor beneficio de un equilibrador de carga en la nube es que los usuarios pueden pagar al proveedor de la nube en función del uso actual. Y en comparación con el umbral técnico del hardware y el software, el umbral del equilibrador de carga en la nube es relativamente bajo. Por lo tanto, los balanceadores de carga en la nube son actualmente una de las principales opciones para muchas empresas.

Conclusión

El equilibrador de carga es uno de los conceptos importantes en el diseño de sistemas y también es una herramienta indispensable para sistemas grandes. Además de mejorar el rendimiento del sistema, también garantiza que el sistema no fallará debido al alto tráfico en un corto período de tiempo.

Si está interesado en otros diseños de sistemas, es posible que también desee leer otros artículos sobre diseño de sistemas. ¡También puede dejar mensajes para comunicarse!

Artículos relacionados

¿Qué es DNS? Introducción al sistema de nombres de dominio – Diseño del sistema 06

Introducción al bloque de construcción de componentes de diseño de sistemas: diseño de sistemas 05

Cálculo del reverso del sobre: diseño del sistema 04

Características no funcionales del diseño de software – Diseño de sistemas 03

Aplicación de la abstracción en el diseño de sistemas – Diseño de sistemas 02

Introducción al diseño de sistemas modernos – Diseño de sistemas 01

Cita

CLOUD FLARE: ¿Qué es el equilibrio de carga?

AWS: ¿Qué es el equilibrio de carga?

NGINX: ¿Qué es el equilibrio de carga?

Wikipedia: programación por turnos

es_ESEspañol