Red de conocimiento informático - Problemas con los teléfonos móviles - Solución al problema de sobrecarga de tráfico del servidor WEB

Solución al problema de sobrecarga de tráfico del servidor WEB

Soluciones al problema de la sobrecarga de tráfico del servidor WEB

El sistema de clúster de servidores de aplicaciones web es un sistema de clúster compuesto por un grupo de servidores que ejecutan la misma aplicación web al mismo tiempo. En el mundo exterior, parece un servidor. Para equilibrar la carga del servidor del clúster y optimizar el rendimiento del sistema, el servidor del clúster distribuye numerosas solicitudes de acceso a diferentes nodos del sistema para su procesamiento. Esto logra una mayor efectividad y estabilidad, que son exactamente las características que deben tener las aplicaciones empresariales basadas en Web.

1. Dos métodos para calcular la carga del servidor WEB

Un sistema de clúster de servidores de aplicaciones web es un sistema de clúster compuesto por un grupo de servidores que ejecutan la misma aplicación web al mismo tiempo. El mundo exterior, vamos, como un servidor. Para equilibrar la carga del servidor del clúster y optimizar el rendimiento del sistema, el servidor del clúster distribuye numerosas solicitudes de acceso a diferentes nodos del sistema para su procesamiento. Esto logra una mayor efectividad y estabilidad, que son exactamente las características que deben tener las aplicaciones empresariales basadas en Web.

La alta confiabilidad puede considerarse como una configuración redundante del sistema. Para una solicitud específica, si el servidor solicitado no puede manejarla, ¿pueden otros servidores manejarla de manera efectiva? Para un sistema eficiente, si un servidor web falla, otros servidores pueden tomar su lugar inmediatamente y procesar la solicitud solicitada. Además, este proceso debe ser lo más transparente posible para el usuario para que no pueda detectarlo.

La estabilidad determina si la aplicación puede soportar el creciente número de solicitudes de los usuarios. Es una capacidad de la aplicación misma. La estabilidad es una medida eficaz de muchos factores que afectan el rendimiento del sistema, incluido el número máximo de usuarios simultáneos que el sistema de clúster puede admitir y el tiempo que lleva procesar una solicitud.

Entre los muchos métodos existentes para equilibrar la carga del servidor, los siguientes dos métodos son ampliamente estudiados y utilizados:

Método de equilibrio de carga DNS RR-DNS (Sistema de nombres de dominio Round-Robin)

Equilibrador de carga

A continuación, analizaremos estos dos métodos.

2. Ventajas y desventajas de la programación por turnos de DNS

El archivo de datos en el servidor de nombres de dominio asigna el nombre de host a su dirección IP. Cuando escribe una URL en su navegador (por ejemplo: www.loadbalancedsite.com), el navegador envía una solicitud al DNS, pidiéndole que devuelva la dirección IP del sitio correspondiente. Esto se denomina consulta DNS. Cuando el navegador obtiene la dirección IP del sitio, se conecta al sitio que desea visitar a través de la dirección IP y muestra la página frente al usuario.

Un servidor de nombres de dominio (DNS) generalmente contiene una única dirección IP y una lista de los nombres de los sitios a los que se asigna la dirección IP. En nuestro ejemplo hipotético anterior, la dirección IP asignada del sitio www.loadbalancedsite.com es 203.24.23.3.

Para utilizar DNS para equilibrar la carga del servidor, para el mismo sitio, hay varias direcciones IP diferentes en el servidor DNS al mismo tiempo. Estas direcciones IP representan diferentes máquinas en el clúster y están asignadas lógicamente al mismo nombre de sitio.

Esto se puede entender mejor con nuestro ejemplo. www.loadbalancedsite.com se publicará en tres máquinas de un clúster a través de las siguientes tres direcciones IP:

 203.34.23.3

203.34.23.4

203.34.23.5

En este ejemplo, el servidor DNS contiene la siguiente tabla de mapeo:

www.loadbalancedsite.com 203.34 .23.3

www.loadbalancedsite.com 203.34.23.4

www.loadbalancedsite.com 203.34.23.5

Cuando la primera solicitud llega al servidor DNS, devuelve La dirección IP de la primera máquina es 203.34.23.3; cuando llega la segunda solicitud, la dirección IP de la segunda máquina es 203.34.23.4, y así sucesivamente. Cuando llegue la cuarta solicitud, se devolverá nuevamente la dirección IP de la primera máquina, llamando al bucle.

Utilizando la tecnología DNS Round Robin mencionada anteriormente, todas las solicitudes de un determinado sitio se distribuirán uniformemente a las máquinas del grupo. Por lo tanto, en esta tecnología, todos los nodos del clúster son visibles para la red.

Ventajas de la programación DNS Round Robin

La mayor ventaja de DNS Round Robin es que es fácil de implementar y de bajo costo:

Bajo costo y fácil de establecer. Para admitir la programación por turnos, los administradores del sistema solo necesitan realizar algunos cambios en el servidor DNS, y esta característica se ha agregado a muchas versiones más nuevas de servidores DNS. Para las aplicaciones web, no se requieren cambios en el código; de hecho, la aplicación web en sí no conoce la configuración del equilibrio de carga, ni siquiera delante de ella.

Simple, no se necesitan expertos en redes para configurarlo o mantenerlo cuando surgen problemas.

Desventajas de la programación por turnos de DNS

Este método de equilibrio de carga basado en software tiene principalmente dos desventajas: una es que no admite la correlación durante el período de servicio en tiempo real y la otra. la otra es que no tiene una alta confiabilidad sexual.

No se admite la coherencia entre servidores. La coherencia del servidor es una capacidad que debe tener un sistema de equilibrio de carga. A través de ella, el sistema puede dirigir las solicitudes de los usuarios al servidor correspondiente en función de si la información de la sesión pertenece al lado del servidor o al nivel de la base de datos subyacente. Sin embargo, la programación por turnos de DNS no tiene esta característica inteligente. Hace juicios similares a través de uno de tres métodos: cookies, dominios ocultos y reescritura de URL. Después de que el usuario establece una conexión con el servidor a través del método basado en banderas de texto anterior, todas las visitas posteriores se conectarán al mismo servidor. El problema es que el navegador almacena temporalmente la IP del servidor en la memoria caché. Una vez que el registro caduca, es necesario restablecer la conexión. Luego, es probable que la solicitud del mismo usuario sea procesada por un servidor diferente y toda la sesión anterior. la información se perderá.

No se admite la alta confiabilidad. Imagine un clúster con N nodos. Si uno de los nodos se destruye, todas las solicitudes para acceder a ese nodo no serán respondidas, algo que nadie quiere ver. Los enrutadores más avanzados pueden resolver este problema verificando los nodos a ciertos intervalos y, si hay nodos dañados, eliminándolos de la lista. Sin embargo, debido a que en Internet los ISP almacenan muchos DNS en caché para ahorrar tiempo de acceso, la actualización de DNS será muy lenta, por lo que algunos usuarios pueden visitar algunos sitios que ya no existen, o algunos sitios nuevos no son accesibles. Por lo tanto, aunque la programación circular de DNS resuelve el problema de equilibrio de carga hasta cierto punto, el cambio en esta situación no es muy optimista ni efectivo.

Además del método de programación por turnos presentado anteriormente, existen tres métodos de distribución de procesamiento de equilibrio de carga de DNS. Estos cuatro métodos se enumeran a continuación:

Robino (RRS): trabajo. se distribuye uniformemente a los servidores (para un rendimiento constante del host del servicio)

Menos conexiones (LCS): asigne más trabajo a los servidores con menos conexiones (la tabla IPVS almacena todas las conexiones activas. Se utiliza para un rendimiento constante del servidor).

Round robin ponderado (WRRS): Asigne más trabajo a servidores de mayor capacidad. Se puede ajustar dinámicamente hacia arriba o hacia abajo según la información de carga. (Se utiliza cuando el rendimiento real del host del servicio es inconsistente)

Conexiones mínimas ponderadas (WLC): asigna más trabajo a servidores con menos conexiones, considerando su capacidad. La capacidad se especifica mediante pesos especificados por el usuario, que se pueden ajustar dinámicamente hacia arriba o hacia abajo según la información de carga. (Se utiliza cuando el rendimiento del host de servicio real es inconsistente)

Tres: ventajas y desventajas de los balanceadores de carga tradicionales

El balanceador de carga resuelve el problema de la programación por turnos a través del virtual Método de dirección IP de muchas preguntas. Se utiliza un sistema de clúster de equilibrador de carga. Desde el exterior, parece un único servidor con una dirección IP. Por supuesto, esta dirección IP es virtual y asigna la dirección de cada máquina en el clúster. Entonces, en cierto modo, el equilibrador de carga filtra las direcciones IP de todo el clúster a la red externa.

Cuando llega una solicitud al balanceador de carga, este reescribe los encabezados de la solicitud y los asigna a las máquinas del clúster. Si se elimina una máquina del clúster, las solicitudes no se enviarán al servidor que ya no existe porque aparentemente todas las máquinas tienen la misma dirección IP, incluso si se elimina un nodo del clúster. La dirección tampoco cambiará. Además, las entradas DNS almacenadas en caché en Internet ya no son un problema. Cuando se devuelve una respuesta

, el cliente solo ve el resultado devuelto por el balanceador de carga. En otras palabras, el cliente opera en el equilibrador de carga y sus operaciones de back-end son completamente transparentes para el cliente.

Ventajas de los balanceadores de carga tradicionales

Consistencia del servidor El balanceador de carga lee las cookies o la interpretación de URL contenidas en cada solicitud realizada por el cliente. Según la información leída, el equilibrador de carga puede reescribir el encabezado y enviar la solicitud al nodo apropiado en el clúster, que mantiene la información de la sesión para la solicitud del cliente correspondiente. En la comunicación HTTP, el equilibrador de carga puede proporcionar coherencia al servidor, pero no a través de un canal seguro (como: HTTPS) para proporcionar este servicio. Cuando el mensaje está cifrado (SSL), el equilibrador de carga no puede leer la información de la sesión oculta en él.

Obtenga alta confiabilidad a través del mecanismo de recuperación de fallas. La recuperación de fallas ocurre cuando un nodo en el clúster no puede manejar la solicitud y necesita redirigir la solicitud a otros nodos. Hay dos tipos principales de recuperación de fallas:

Recuperación de fallas a nivel de solicitud. Cuando un nodo del clúster no puede manejar una solicitud (generalmente debido a un tiempo de inactividad), la solicitud se envía a otros nodos. Por supuesto, cuando se dirige a otros nodos, la información de la sesión guardada en el nodo original se perderá.

Recuperación transparente de fallos de sesión. Cuando falla una referencia, el equilibrador de carga la enviará a otros nodos del clúster para completar la operación, lo cual es transparente para el usuario. Dado que la recuperación transparente de fallas de sesión requiere que los nodos tengan la información operativa correspondiente, para implementar esta función, todos los nodos en el clúster deben tener un área de almacenamiento pública o una base de datos general para almacenar datos de información de la sesión para proporcionar a cada nodo un proceso operativo separado. información necesaria para la recuperación de fallos de sesión.

Medición estadística.

Dado que todas las solicitudes de aplicaciones web deben pasar por el sistema de equilibrio de carga, el sistema puede determinar la cantidad de sesiones activas, la cantidad de sesiones activas en cualquier acceso a instancia, la cantidad de respuestas, la cantidad de cargas máximas y la cantidad de solicitudes durante períodos pico y mínimo. Número de sesiones, y muchos más. Todas estas estadísticas se pueden utilizar muy bien para ajustar el rendimiento general del sistema.

Desventajas de los balanceadores de carga tradicionales

Las desventajas del enrutamiento de hardware son el costo, la complejidad y los puntos únicos de falla. Dado que todas las solicitudes se enrutan a través de un único balanceador de carga de hardware, cualquier falla en el balanceador de carga provocará la caída de todo el sitio.

Equilibrio de carga de solicitudes HTTPS

Como se mencionó anteriormente, es difícil equilibrar la carga y mantener la información de la sesión en aquellas solicitudes que provienen de HTTPS. Porque la información de estas solicitudes ha sido cifrada. El equilibrador de carga no está equipado para gestionar este tipo de solicitudes. Sin embargo, hay dos formas de resolver este problema:

Servidor de red proxy

Decodificador SSL de hardware

El servidor proxy está ubicado frente al clúster de servidores. primero Acepta todas las solicitudes y las descifra, y luego reenvía estas solicitudes procesadas a los nodos correspondientes según la información del encabezado. Este método no requiere soporte de hardware, pero agregará una carga adicional al servidor proxy.

El decodificador SSL de hardware descifra la solicitud antes de que llegue al balanceador de carga. Este método es más rápido que el servidor proxy. Pero el coste también es elevado y la implementación complicada. ;