2010-02-14 22 views
19

Estaba tratando de leer sobre el equilibrio de carga en Windows Azure, y toda la información es extremadamente vaga y no específica. Todo lo que realmente quiero es una respuesta simple: ¿cómo realiza Azure el balanceo de carga?¿Cómo realiza Windows Azure el equilibrio de carga?

Muchas aplicaciones usan sesiones o datos en la memoria para aumentar el rendimiento. Con Azure, no estoy seguro si esto es posible, porque (por lo que puedo decir), Azure no tiene ningún tipo de sesiones "adhesivas". Incluso si no se basara en la sesión, sino simplemente en el equilibrio basado en IP, eso sería suficiente para muchas aplicaciones.

Entonces, la pregunta del día: ¿cómo exactamente Azure realiza su balanceo de carga?

+0

Mucho más tarde en 2014 ... En caso de que alguien más aterrice aquí : http://windowsitpro.com/azure/azure-load-balancer-stickiness-options – Dawesi

Respuesta

15

Ok para dar una respuesta correcta aquí - Azure DOES admite balanceo de carga delante de las funciones web y de trabajador (por lo que la respuesta marcada como la mejor en este hilo es completamente incorrecta), pero no admite el equilibrio de carga de Affinity que es lo que jvenema estaba pidiendo, creo. La implementación actual usa el comportamiento round robin.

+1

Buena aclaración Andy; Soy consciente de que. Debería haber sido más claro en la pregunta inicialmente. – jvenema

+0

Usted es bienvenido :-) –

+0

¿Qué sucede si solo hay una aplicación cliente que llama al servicio basado en Azure; ¿este tráfico siempre se enrutará a una función web particular? –

1

Creo que es posible que esté buscando Windows Azure AppFabric y Velocity, específicamente. Eche un vistazo a uno de los PDC sessions para obtener más información.

+1

He leído sobre AppFabric: aquí es donde entramos en los "balances de carga", pero no vamos a contarte cómo "mumbo jumbo" – jvenema

+0

Si bien el almacenamiento en caché de AppFabric fue la solución recomendada en el momento en que se escribió esta respuesta, ahora se ha desaprobado y MS ahora recomienda usar su caché Redis alojada http://blogs.msdn.com/b/appfabric/archive/2015/04/ 02/windows-server-appfabric-1-1-ends-support-4-2-2016.aspx – knightpfhor

7

Azure maneja el equilibrio de carga para el almacenamiento de tablas y SQL Azure distribuyendo el tráfico entre las instancias que configura.

Para cosas como el estado de la sesión con una aplicación asp.net tradicional, los datos de la sesión se almacenarían en el almacenamiento de la tabla, que luego estaría disponible para todas las instancias de webrole. Esto se menciona here.

Windows Azure proporciona equilibrio de carga en cada punto final público, lo que le permite escalar su aplicación a tantas instancias como desee. Debe asegurarse de que su aplicación sea sin estado (o almacene estado en un área común a través de instancias, como blobs o tablas). Los únicos puntos finales que no tienen equilibrio de carga son los puntos finales internos. Por lo tanto, si está realizando algún tipo de comunicación entre funciones, como una función web a una de varias instancias de roles de trabajo que alojan un servicio wcf en un punto final interno, deberá gestionar el equilibrio de carga entre esas instancias.

3

Me doy cuenta de que esta es una vieja pregunta pero solucionamos el problema de Affinity usando Windows Web Farm Framework y creando una capa de servidores proxy que admite Affinity a través de nuestros servidores web.

http://technet.microsoft.com/en-us/library/jj129385.aspx

Esta es la arquitectura recomendada si fueras uno mismo alojamiento y parece que se aplica por igual a Azure. Las capas se ven algo como esto ...

Firewall: azul del equilibrador de carga (round-robin a los servidores proxy)

Proxy: Aplicación Solicitud de enrutamiento (ARR) para realizar balanceo de carga con afinidad a los servidores web, estática y Compresión dinámica y SSL. La descarga de SSL a los servidores proxy da a los servidores web tiempo de procesador adicional. Además, Web Farm Framework es ideal para escalar, ya que gestiona cada servidor web adicional, copia archivos de aplicaciones, supervisa el estado, cambia en línea/fuera de línea, etc. Puede tener más de 10 000 servidores web gestionados.

Web: Servidores web normales (no se requiere SSL, compresión, etc.).

Base de datos: servidores de bases de datos normales o SQL de Azure.

Microsoft recomienda que tenga al menos dos servidores ARR (Proxy). Algunas personas se quedarán boquiabiertos al ver el costo adicional en Azure. Sin embargo, descubrimos que las Micro Instancias ($ 15 pm) son más que adecuadas como servidores Proxy, si 5 mbit es suficiente velocidad.

Otra alternativa es tener dos servidores ARR configurados como Pequeñas Instancias ($ 65pm @ 100 mbit) pero tener uno apagado y solo habilitarlo en períodos pico o cuando el primer servidor falla (por ejemplo, programar el segundo servidor ARR en comience cuando primero ejecuta Actualizaciones de Windows y deténgase una hora más tarde).

Es una molestia para configurar, pero una vez que está funcionando, ¡es muy resbaladizo!

NOTA: Existe cierta confusión en la documentación de WFF sobre los términos ARR, proxy y controlador. Por lo general, son todo lo mismo. Recuerda esto si tratas de configurarlo.

+0

Buen resumen Grant! – jvenema

6

Mientras que el equilibrio de la carga que solía ser de round robin, Microsoft tiene desde cambiado la forma de hacer el balance de carga como se describe en este blog:

http://azure.microsoft.com/blog/2014/04/08/microsoft-azure-load-balancing-services/

El Microsoft Azure equilibrador de carga utiliza un 5 tupla (IP de origen, puerto de origen, IP de destino, puerto de destino, tipo de protocolo) para calcular el hash que se utiliza para asignar el tráfico a los servidores disponibles

Cuestiones relacionadas