La experiencia de compartir carga suave de 7 capas bajo Windows

  
                

Este artículo lo presentará para hacer un análisis de la carga suave de 7 capas en Windows. Si está interesado en esta carga, puede echar un vistazo. De hecho, las llamadas cuatro capas son equilibrio de carga en función de los puertos IP +, las siete capas son equilibrio de carga en función de la información de la capa de aplicación, como las URL, tiene una impresión superficial en la capa 7, y todos tienen la experiencia de hacer 7 capas de carga suave. Compartir, por supuesto, es mejor bajo la plataforma de Windows.

Análisis de rendimiento

1. La administración de la conexión y la resolución del protocolo para la red externa utilizan el mecanismo integrado http.sys (HttpApi.dll, HttpListener), http.sys para la administración de la conexión HTTP a nivel del kernel y Resolución del protocolo, el rendimiento debe estar garantizado.

2, la administración de la conexión y la consolidación de la intranet RealServer mediante el mecanismo incorporado HttpWebRequest, pero los siguientes problemas

a) Administración de la conexión: el proxy predeterminado para enviar una solicitud a RealServer establecerá una nueva conexión Después de recibir la respuesta, la conexión se eliminará, lo que significa que se establecerá una gran cantidad de conexiones entre el Proxy y el RealServer, pero debido a la limitación del puerto (65535), la conexión de salida no puede ser demasiado. Para resolver este problema, puede intentar habilitar RealAlive para resolver RealServer.

b) Paquete: Después de que HttpListener reciba el paquete, se resolverá automáticamente con el objeto, pero también volverá a empalmar el paquete en el formato HttpWebRequest y lo enviará a RealServer, que incluye la copia de Uri, HttpHeader, Cookies, Cuerpo, etc., la cantidad de datos es bastante grande, copiando la memoria en la memoria para una cierta pérdida de rendimiento. Este problema debe ser inevitable.

3, si se trata de una aplicación web normal (clase de acceso a recursos), la solicitud es pequeña, la respuesta es muy grande, RealServer también necesita pasar por el Proxy al devolver la Respuesta, pero también para copiar la memoria, esto también afecta el rendimiento. Luego, la Capa 7 no puede hacer el mecanismo DirectRoute de LVS (necesita modificar la dirección mac del paquete de red), y la transición de estado del túnel IP y TCP necesita modificar la pila de protocolos TCP /IP del sistema operativo. Dado el costo, el problema no es eludido.

4, el protocolo Http especifica que la solicitud y la respuesta deben aparecer en pares, de manera predeterminada, después de enviar una solicitud en una conexión, debe esperar hasta que se reciba la respuesta correspondiente a la solicitud antes de enviar la siguiente solicitud, aunque Http1.1 tiene La función de canalización puede enviar solicitudes en lotes sin esperar primero una respuesta, pero también hay muchas restricciones. Por ejemplo, POST no debe usar una tubería. La primera vez que se envía una conexión, no se puede usar el mecanismo de tubería y hay solicitudes para cada lote de solicitudes. El número no está bien determinado. Una vez que la solicitud se envía por lotes, si se interrumpe la conexión, las solicitudes múltiples fallarán, y así sucesivamente. El protocolo HTTP no coincide con la solicitud y la respuesta de CallID y Cseq como el protocolo SIP, por lo que la solicitud y la respuesta pueden enviarse y recibirse de forma asincrónica, de modo que cuando se implementa la pila del protocolo Http, la respuesta se espera de forma sincrónica y luego se puede enviar el siguiente lote de solicitudes a la conexión. Esto inevitablemente afectará el rendimiento.

5, la solicitud de recepción y envío asíncrono de HttpListener es el modo APM ordinario (BeginXXX, formato EndXXX), este modo asíncrono generará y destruirá un gran número de objetos IAsyncRequest cuando se llama con frecuencia, lo que aumenta la presión sobre el GC Y el objeto IAsyncRequest todavía no proporciona una interfaz agrupada personalizada. Si HttpListener proporciona un nuevo modo asíncrono basado en eventos (modo XXXAsync (eventargs), consulte el método Socket.ReceiveAsync) resolverá este problema.

6. Además, dado que HttpLisenter es una clase de envoltura .NET, se ejecuta en modo usuario, mientras que HTTP.SYS se ejecuta en modo kernel. Al aceptar una solicitud, la respuesta de retorno se realizará entre el estado del usuario y el estado del kernel. Conmutación, lo que reduce el rendimiento, si puede realizar directamente el reenvío de 7 capas en el estado del kernel, LVS (KTCPVS) puede lograr el reenvío de 7 capas basado en contenido basado en el kernel en Linux, y es posible que deba realizar el desarrollo de TDI o NDIS en Windows. Verificar alguna información es demasiado complicado, así que no lo pienso primero.

Análisis de confiabilidad

Para proporcionar tolerancia a los desastres y mejorar la confiabilidad, considere el siguiente esquema

1. Debe haber 4 capas de dispositivos de carga frente a la carga suave de 7 capas, 7 capas de carga suave Cargue múltiples y comparta la política de hash, el dispositivo de 4 capas realiza una carga aleatoria de acuerdo con la Sesión, de modo que todas las máquinas de carga suave de 7 capas pueden manejar correctamente cualquier solicitud, y después de que una carga suave de 7 capas esté inactiva, las 7 restantes La carga suave de la capa puede seguir funcionando. Debido a que la carga de 4 capas tiene una función de actividad permanente, puede detectar qué carga suave de 7 capas está inactiva y no reenviar las solicitudes.

2. La carga suave de la capa 7 hace doble clic en el modo de espera activa, la carga suave de 7 capas accede directamente a la red externa. Normalmente, el servidor primario procesa la solicitud. Si el servidor primario está inactivo, el servidor de respaldo lo descubre y luego se falsifica a través de ARP. Obtenga la dirección IP original del servidor primario para atraer la solicitud al servidor de respaldo. Si el soporte de hardware es compatible, puede considerar que los dispositivos primarios y de respaldo comparten una dirección MAC. El cambio activo /en espera puede provocar un error en la solicitud a corto plazo.

Considerando la segunda opción, hay algunas casas de campo y no hay seguro, dando prioridad a la primera opción. Previo1234Página siguiente Total 4 páginas

Copyright © Conocimiento de Windows All Rights Reserved