Uso de la tecnología de equilibrio de carga para crear sitios de red de alta carga

  
El rápido crecimiento de Internet ha permitido que los servidores de red multimedia, especialmente los servidores web, aumenten rápidamente el número de visitantes, y los servidores de red deben tener la capacidad de proporcionar una gran cantidad de servicios de acceso concurrente. Por ejemplo, Yahoo recibe millones de solicitudes de acceso todos los días, por lo que la CPU y la capacidad de procesamiento de E /S pueden convertirse rápidamente en un cuello de botella para los servidores que proporcionan servicios web de alto rendimiento. El simple hecho de mejorar el rendimiento del hardware no resuelve realmente este problema, ya que el rendimiento de un solo servidor siempre es limitado. En general, un servidor de PC puede proporcionar aproximadamente 1000 capacidades de procesamiento de acceso simultáneo y un servidor dedicado más avanzado. Ser capaz de admitir 3000-5000 accesos simultáneos todavía no puede cumplir con los requisitos de un sitio web muy cargado. En particular, las solicitudes de red son repentinas. Cuando ocurren ciertos eventos importantes, el acceso a la red aumentará considerablemente, lo que provocará cuellos de botella. Por ejemplo, la revista Clinton publicada en Internet es un claro ejemplo. Se deben utilizar varios servidores para proporcionar servicios de red y las solicitudes de red se asignan a estos servidores para proporcionar la capacidad de manejar grandes cantidades de servicios concurrentes. Cuando se usan varios servidores para compartir la carga, la forma más fácil es usar diferentes servidores de diferentes maneras. Cuando se divide según el contenido proporcionado, se puede usar un servidor para proporcionar una página de noticias, y el otro se puede usar para proporcionar una página de juego, o se puede dividir por la función del servidor, y un servidor se usa para proporcionar acceso a páginas estáticas, y Otros se utilizan para proporcionar acceso dinámico a la página, como CGI, que consume una gran cantidad de recursos. Sin embargo, debido a la rapidez del acceso a la red, es difícil determinar la carga causada por esas páginas es demasiado grande, y si la página del servicio es demasiado delgada, será un gran desperdicio. De hecho, las páginas que causan una carga excesiva a menudo cambian. Si desea ajustar el servidor donde se encuentra la página de acuerdo con los cambios de carga, esto causará grandes problemas para la administración y el mantenimiento. Por lo tanto, este método de segmentación solo se puede ajustar en una dirección grande. Para un sitio web muy cargado, la solución fundamental también debe aplicar la tecnología de equilibrio de carga. En el concepto de equilibrio de carga, los servidores múltiples son simétricos y cada servidor tiene un estado equivalente. Ambos servicios se pueden proporcionar por separado sin la asistencia de otros servidores. Luego, a través de alguna tecnología de carga compartida, la solicitud enviada externamente se distribuye uniformemente a un servidor en la estructura simétrica, y el servidor que recibe la solicitud responde independientemente a la solicitud del cliente. Debido a que el establecimiento de un servidor web con contenido idéntico no es complicado, se puede hacer usando métodos como la actualización de sincronización del servidor o el espacio de almacenamiento compartido. Por lo tanto, la tecnología de equilibrio de carga es una tecnología clave para crear un sitio web de alta carga. 1. Equilibrio de carga basado en software de servidor específico (redirección de acceso)
Muchos protocolos de red admiten la función "redireccionar". Por ejemplo, el comando de ubicación es compatible con el protocolo HTTP. El navegador que recibe este comando automáticamente Dirigido a otra URL especificada por Ubicación. Dado que el envío de un comando de Ubicación tiene una carga mucho menor en el servidor web que en la ejecución de una solicitud de servicio, se puede diseñar un servidor con equilibrio de carga en función de esta función. Siempre que el servidor web piense que tiene una carga pesada, no lo enviará directamente a la página web solicitada por el navegador, sino que enviará un comando Locaction para permitir que el navegador obtenga la página web requerida en otros servidores del clúster de servidores. De esta manera, el servidor mismo debe admitir esta función, pero existen muchas dificultades para implementarla. Por ejemplo, ¿cómo puede un servidor garantizar que el servidor al que se redirige está inactivo y no volverá a enviar el comando Ubicación? La directiva de ubicación y el navegador no tienen este soporte, lo que facilita la formación de un bucle infinito en el navegador. Por lo tanto, este método es raro en aplicaciones prácticas y hay menos software de clúster de servidores implementado de esta manera. En algunos casos, se puede usar CGI (incluido el uso de las extensiones FastCGI o mod_perl para mejorar el rendimiento) para simular esta manera de compartir la carga, mientras que el servidor web sigue manteniendo una función simple y eficiente, en cuyo caso la tarea de evitar el bucle de ubicación será manejada por el programa CGI del usuario. Ven a llevar 2. Equilibrio de carga basado en DNS (carga de nombre de dominio único de varias máquinas)
Debido a que el equilibrio de carga del software basado en servidor requiere cambios en el software, a menudo vale la pena perderlo. Aproveche las ventajas del software de servidor existente. La primera tecnología de equilibrio de carga se implementa mediante la resolución aleatoria de nombres en el servicio DNS. En el servidor DNS, se puede configurar el mismo nombre para múltiples direcciones diferentes, y el cliente que finalmente busque el nombre obtendrá el nombre cuando analice el nombre. Una de las direcciones. Por lo tanto, para el mismo nombre, diferentes clientes obtienen diferentes direcciones, y también acceden al servidor web en diferentes direcciones para lograr el equilibrio de carga. Por ejemplo, si desea usar tres servidores web para responder a las solicitudes HTTP de www.exampleorg.org.cn, puede configurar los datos del servidor DNS del dominio para que incluyan resultados similares al siguiente ejemplo: www1 IN A 192.168.1.1 Www2 EN A 192.168.1.2 www3 EN A 192.168.1.3 www EN CNAME www1 www EN CNAME www2 www EN CNAME www3 Después de esto, el cliente externo puede obtener aleatoriamente la dirección diferente correspondiente a www, luego la siguiente solicitud HTTP se envía a los diferentes La dirección está arriba. La ventaja del equilibrio de carga de DNS es que es simple y fácil de implementar, y el servidor puede ubicarse en cualquier lugar de Internet y actualmente se usa en sitios web como Yahoo. Sin embargo, también tiene una serie de deficiencias. Un inconveniente es que para garantizar la actualización oportuna de los datos DNS, generalmente es necesario establecer que el tiempo de actualización del DNS sea pequeño, pero demasiado pequeño causará demasiado tráfico de red adicional, y después de cambiar los datos del DNS. No puede entrar en vigencia de inmediato; el segundo punto es que el equilibrio de carga del DNS no puede reconocer la diferencia entre los servidores, no puede asignar más solicitudes de servidores con mejor rendimiento, ni puede conocer el estado actual del servidor, ni siquiera la concentración de las solicitudes de los clientes. Situación ocasional en un servidor. 3. Equilibrio de carga de proxy inverso (grupo de búferes)
El uso de un servidor proxy puede reenviar solicitudes a un servidor web interno. El uso de este modo de aceleración puede mejorar la velocidad de acceso de las páginas web estáticas. Por lo tanto, también puede considerar el uso de esta tecnología para permitir que el servidor proxy reenvíe de manera uniforme las solicitudes a uno de los múltiples servidores web internos para fines de equilibrio de carga. Este método de proxy es diferente del método de proxy normal. El método de proxy estándar es que el cliente utiliza el proxy para acceder a múltiples servidores web externos. Este método de proxy es utilizado por varios clientes para acceder al servidor web interno, por lo que también se denomina inverso. Modo proxy. Implementar esta capacidad de proxy inverso no es una tarea particularmente compleja, pero requiere una eficiencia particularmente alta en el equilibrio de carga, que no es muy sencillo de implementar. Para cada agente, el servidor proxy debe abrir dos conexiones, una para la conexión externa y otra para la conexión interna, por lo tanto, cuando el número de solicitudes de conexión es muy grande, la carga del servidor proxy es muy grande, al final Un servidor proxy inverso puede convertirse en un cuello de botella para los servicios. Por ejemplo, cuando se usa el módulo mod_rproxy de Apache para implementar el equilibrio de carga, la cantidad de conexiones simultáneas provistas está limitada por la cantidad de conexiones simultáneas a Apache. En general, se puede usar para hacer que la cantidad de conexiones no sea particularmente grande, pero cada conexión requiere un sitio que consume muchos recursos de procesamiento para el equilibrio de carga, como la búsqueda. La ventaja de usar un proxy inverso es que puede combinar el equilibrio de carga y las técnicas de almacenamiento en caché del servidor proxy para proporcionar un rendimiento beneficioso con seguridad adicional, y los clientes externos no pueden acceder directamente a los servidores reales. Y puede lograr una mejor estrategia de equilibrio de carga, y la carga puede distribuirse al servidor interno de una manera muy equilibrada, sin el fenómeno accidental de que la carga se concentra en un determinado servidor. 4. Tecnología de equilibrio de carga basada en NAT (clúster de intranet y conmutación de cuatro capas)
La traducción de direcciones de red se realiza para convertir la dirección interna y la externa, de modo que una computadora con una dirección interna pueda acceder a la red externa. Cuando una computadora en la red externa accede a una dirección externa que es propiedad de la puerta de enlace de traducción de direcciones, la puerta de enlace de traducción de direcciones puede reenviarla a una dirección interna asignada. Por lo tanto, si la puerta de enlace de traducción de direcciones puede convertir de manera uniforme cada conexión a una dirección de servidor interna diferente, entonces las computadoras en la red externa se comunican con el servidor en la dirección obtenida por la conversión, logrando así la carga compartida. La traducción de direcciones se puede implementar en software o en hardware. La operación que utiliza hardware generalmente se conoce como conmutación, y cuando el intercambio debe contener información de conexión TCP, esta operación para la capa de red OSI se denomina conmutación de Capa 4. Una función importante de los conmutadores de Capa 4 es una función importante para la conversión de direcciones de equilibrio de carga. Debido a que se basa en chips de hardware personalizados, su rendimiento es muy bueno. Muchos conmutadores afirman tener una capacidad de conmutación de Capa 4 de 400 MB a 800 MB. Sin embargo, existen algunos materiales. Muestra que a una velocidad tan rápida, la mayoría de los conmutadores ya no tienen la capacidad de conmutación de la cuarta capa, sino que solo admiten la tercera capa o incluso la conmutación de la segunda capa. Sin embargo, para la mayoría de los sitios, el equilibrio de carga actual es principalmente para resolver el cuello de botella de la capacidad de procesamiento del servidor web, en lugar de la capacidad de transmisión de la red. El ancho de banda de la conexión a Internet de muchos sitios es de solo 10 MB, y solo algunos sitios pueden tener conexiones de red de mayor velocidad. Por lo tanto, generalmente no es necesario utilizar equipos costosos como estos balanceadores de carga. El uso de software para implementar el equilibrio de carga basado en la traducción de direcciones de red es mucho más práctico. Además de las soluciones proporcionadas por algunos proveedores, un método más efectivo es utilizar software gratuito para realizar esta tarea. Esto incluye la implementación de NAT en el Proyecto de Servidor Virtual de Linux, o la revisión de la natd por FreeBSD. En términos generales, al utilizar este software para implementar la traducción de direcciones, el equilibrador de carga central tiene una limitación de ancho de banda. Bajo la condición de Fast Ethernet de 100 MB, puede obtener hasta 80 MB de ancho de banda. Sin embargo, en aplicaciones prácticas, solo puede ser de 40 MB. 60MB de ancho de banda disponible. 5. Tecnología de equilibrio de carga extendido
El uso anterior de la traducción de direcciones de red para compartir la carga, sin duda, todas las conexiones de red deben pasar por el equilibrador de carga central, luego, si la carga es tan grande, la cantidad de servidores en segundo plano No hay más que unos pocos, más de una docena, pero cientos o incluso más, incluso si utiliza un conmutador de hardware de buen rendimiento, encontrará cuellos de botella. En este punto, el problema se transformará en cómo distribuir tantos servidores a múltiples ubicaciones en Internet y distribuir la red. Por supuesto, esto puede lograrse utilizando los métodos DNS y NAT. Sin embargo, una mejor manera es usar un método de equilibrio de carga semi-central. En este modo de equilibrio de carga semi-central, cuando el cliente solicita enviar al equilibrador de carga, el equilibrador de carga central empaqueta la solicitud y la envía a un servidor, y la solicitud de respuesta del servidor ya no se devuelve al equilibrador de carga central. En su lugar, se devuelve directamente al cliente, por lo que el equilibrador de carga central solo es responsable de aceptar y reenviar solicitudes, y su carga de red es pequeña. La implementación de hardware de este método también es muy costosa, pero tiene diferentes funciones especiales, como la compatibilidad con SSL, según el fabricante. Debido a que este método es más complicado, es difícil de implementar y su punto de partida también es muy alto. En la situación actual, el sitio web no necesita una capacidad de procesamiento tan grande. Comparando los métodos de equilibrio de carga anteriores, el DNS es el más fácil y el más utilizado para satisfacer las necesidades generales. Sin embargo, si se requiere administración y control adicionales, se puede usar proxy inverso o NAT. La elección entre los dos depende principalmente de si el búfer es importante y el número máximo de accesos concurrentes. Si el programa CGI en el sitio web que tiene un fuerte impacto en la carga lo desarrolla el propio sitio web, también puede considerar usar Locaction para admitir el equilibrio de carga en el programa. El método de distribución de carga semi-centralizada no es necesario al menos en la situación doméstica actual.
Copyright © Conocimiento de Windows All Rights Reserved