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. Compartirlo, por supuesto, es mejor bajo la plataforma de Windows. análisis de rendimiento
1, gestión de conexión y protocolo de red externo que se utiliza en el análisis http.sys (Httpapi.dll, HttpListener) mecanismo incorporado, http.sys HTTP gestión de la conexión a nivel de núcleo y Resolución del protocolo, el rendimiento debe estar garantizado.
2, RealServer gestión de la conexión de red interna y utilizar HttpWebRequest luchar paquete de mecanismos integrados, pero hay problemas
a) Connection Manager: proxy predeterminado a RealServer enviará una solicitud para 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 KeepAlive para resolver RealServer.
b) el paquete de lucha: HttpListener después de la recepción de un paquete ha sido analizado en los objetos, mientras que de forma automática, pero también para volver a constituirse en estos paquetes enviados al formato RealServer HttpWebRequest, que incluye la copia de Uri, HTTPHeader, galletas, 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 las aplicaciones web convencionales (clases de acceso a los recursos), Solicitar pequeña, gran respuesta, pero también a través de proxy, sino también para las copias de memoria cuando RealServer de respuesta de retorno, esto también es muy afecta al 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, HTTP solicitud y la respuesta del acuerdo debe estar emparejado, conectado a una petición por defecto a cabo en la transmisión hasta después de la próxima para recibir una respuesta después de enviar una solicitud correspondiente a la solicitud, aunque no HTTP1.1 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 asíncrono de transmisión y de recepción de peticiones es una respuesta normal HttpListener modo APM (BeginXXX, formato EndXXX), que genera un gran número de modo asíncrono y destrucción objeto IAsyncRequest cuando se le llama con frecuencia, aumentando de este modo la presión de 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, ya que la adición es HttpLisenter .Net clase de contenedor, la ejecución en el modo de usuario, de modo de núcleo y HTTP.SYS se está ejecutando, que recibe la solicitud, devuelve una respuesta será entre el modo de dos de usuario y modo de núcleo 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 fiabilidad
para la recuperación de desastres, mejorar la fiabilidad, considere el siguiente programa carga la parte frontal suave
1.7 capa tiene Capa 4 dispositivo de carga, la carga suave capa múltiple 7 Estacione 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 capas restantes son suaves. La carga puede continuar funcionando. Debido a que la carga de 4 capas tiene la función keepalive, puede detectar qué carga suave de 7 capas está inactiva y no reenvía la solicitud.
2.7 doble capa de carga suave do de espera caliente, la suave capa 7 de carga acceso directo a redes externas, normalmente por el servidor principal procesa la solicitud, si el servidor principal va hacia abajo, el descubrimiento del servidor de copia de seguridad, ARP spoofing adquirida por el principal La IP original del servidor se usa para atraer la solicitud al servidor de respaldo (el hardware puede permitir compartir una dirección de Mac entre la máquina principal y la de respaldo si es compatible), y la solicitud de tiempo corto puede fallar cuando se produce el cambio activo /en espera.
En su conjunto, la segunda opción no es una casa de campo y de seguros, dar prioridad a la primera opción.