2011-11-22 16 views
5

Para obtener un documento de prueba de concepto, recopilé datos sobre Windows Azure. Quedan 2 temas por los que no pude encontrar una respuesta definitiva. balanceo de cargaWindows Azure, instancias de direccionamiento y sesiones adhesivas

  1. sesiones Fijo/pegajosa no es posible, estoy en lo cierto? ¿Tal vez hay una posibilidad con la ayuda de Azure Traffic Manager (WATM)?

  2. ¿Pueden abordarse instancias únicas de una implementación, o están todas detrás de este muro no transparente de Azure? O al menos, ¿puede una instancia en tiempo de ejecución determinar su propia identificación o algo así para escribirla en un registro?

Respuesta

1

Por favor, encontrar las respuestas a continuación:

  1. pegajosa sesiones/balanceo de carga pegajosa no es posible, estoy en lo cierto? Tal vez haya una posibilidad con la ayuda del Gerente de tráfico de Azure (WATM)?

Usted está correcto. No hay sesiones fijas con Windows Azure. Y no, no puedes usar Traffic Manager para ayudarte con la adherencia. Traffic Manager solo lo ayudará a distribuir la carga en Roles, no en instancias. Por favor haz una diferencia entre Rol e Instancia. Eche un vistazo al this question para obtener más información sobre roles e instancias.

2. ¿Se pueden abordar instancias individuales de una implementación, o están todas detrás de este muro no transparente de Azure? O al menos, ¿puede una instancia en tiempo de ejecución determinar su propia identificación o algo así en para escribirla en un registro?

No puede dirigirse a una instancia específica. Todos están detrás de Load Balancers de Windows Azure y FireWall. Pero puede descubrir, a partir del código, cuál es su instancia de rol actual. Use la propiedad CurrentRoleInstance de la clase RoleEnvironment. Este será un objeto del tipo RoleInstance, que tiene una propiedad ID.

+0

Esto dice implementar sesiones fijas http://archive.msdn.microsoft.com/stickyrouter – sharptooth

+0

Gracias por señalar esto. Sin embargo, esto usa un Rol de trabajador adicional. Y a pesar de que soy un fan de la optimización y podría poner el "código de trabajador" en un "papel web", todavía creo que esto es ejercicio innecesario. Prefiero cambiar mi código para que sea apátrida y sin aplomo. – astaykov

+0

Bien, gracias hasta ahora. ¿Alguien puede explicar cómo este enrutador de sesión fija para Azure (enlace sharptooths) puede funcionar si no es posible direccionar las instancias? – alapeno

1

Como lo señala astaykov, las instancias de función siempre están detrás de un cortafuegos, y usted no tiene capacidad para acceder a una instancia específica desde fuera de su implementación.

La única manera de lograr sesiones fijas es crear un enrutador de solicitud. Una vez que tenga esta ejecución (por ejemplo, en su propia función Web o Trabajador, como en el ejemplo señalado por sharptooth, dentro de la misma implementación), dicha función puede acceder a puntos finales internos de las otras funciones en la implementación.

Mientras que los puntos finales internos no son de carga equilibrada, el router solicitud pueden enumerar todas las instancias de un punto final interna (obtener ip: puerto para cada uno) y luego hacer su propio equilibrio de carga o de enrutamiento.

Para un ejemplo de comunicación entre el papel por medio de criterios internos, echar un vistazo a this msdn article.

+0

gracias, hizo las cosas más claras para mí – alapeno

0

Todavía no existe una respuesta definitiva, pero los tres mejores opciones son: Servidor

  1. Estado - Esto le permitirá obtener datos cifrados de servidor a servidor, incluso fuera de su red. Puede hacerlo implementando un servidor de estado en cada instancia de sus aplicaciones web o servidores.

  2. SQL Server (en la memoria, esto sólo está disponible en 2014 y las versiones más recientes)

  3. Redis caché en Azure

Las tres opciones han manejado casi cualquier tema que he sesión encontrarse en los últimos tres años.

+0

Gracias Nathaniel! – JaxCoder

Cuestiones relacionadas