microsoft - porta azure
Roles e instancias de Azure (2)
Depende completamente de tu requerimiento. Simplemente puede tener una función de trabajador que expone un punto final externo como se describe aquí y exponer un servicio de WCF. También puede tener Web Role, que es un Servicio WCF, y crear un hilo de fondo que verifique la cola. ¿Qué está haciendo el Trabajador con el mensaje? ¿Qué proceso se realiza? Eso también tiene un impacto en la solución.
Una cuestión clave que debe tener en cuenta es si el requisito de escala entre su Servicio WCF y las tareas de recuperación de cola son los mismos. Si son un solo rol, deberían ser lo suficientemente buenos como para comenzar.
¿Puedo ejecutar un rol web y un rol Worker en la misma instancia, o tengo que obtener 2 instancias de alojamiento separadas y pagar el doble de lo que pagaría de otra manera?
Tengo una API web de WCF que deseo alojar en Azure. También tengo un Rol de trabajador que escucha una cola en almacenamiento de Azure. Cada vez que se agrega un mensaje a la cola, lo obtendrá y ejecutará una pequeña tarea según el mensaje.
Me preguntaba si puedo ejecutar estos dos en la misma instancia o no.
"Rol de trabajador" y "Papel web" son simplemente plantillas simples para "Windows Server 2008 con IIS en ejecución" y "Windows Server 2008 sin IIS en ejecución". La clave es que un "rol" es una definición de una máquina virtual Windows Server. Para cada "rol" tiene una o más instancias.
En Windows Azure, ambos tipos de roles tienen la capacidad de instalar software, modificar configuraciones de registro, etc. en un script de inicio o en OnStart()
controlador OnStart()
, y ambos le permiten ejecutar código en el método Run()
.
En su caso, puede ejecutar su servicio web WCF en un rol web, y luego en su método Run()
(en el mismo rol), iniciar un proceso que escucha los mensajes en cola publicados por sus servicios web WCF. No es necesario tener un nuevo rol.
Ahora: una vez que entra en situaciones de gran volumen, es posible que desee dividir su código en roles separados, para que pueda escalar de forma independiente (tanto en tamaño de VM como en cantidad de VM).
Publiqué otra respuesta sobre esto aquí .