¿Cómo puedo configurar Windows Azure para múltiples roles de trabajador ejecutándose en la misma instancia? ¿Es posible?Múltiples roles de trabajador en la misma instancia
Respuesta
Creo que malinterpretas lo que es un Rol de los Trabajadores. Las funciones web y de trabajo son máquinas virtuales de Windows Server, la principal diferencia es que las funciones web tienen IIS ejecutándose. Puede tener múltiples instancias de cada uno.
Realmente no existe tal cosa como "roles de múltiples trabajadores en la misma instancia". Piense en Worker Role como una plantilla para su máquina virtual: los scripts de inicio y el código de manejo de eventos para tratar mensajes como el inicio y el apagado, junto con el código que escribe que se empaqueta y ejecuta dentro de la máquina virtual.
Desde OnStart()
o Run()
, puede ejecutar casi cualquier código que desee. Inicia varios hilos, ejecuta el código del servidor (como Tomcat), etc. Cualquier código que tengas se ejecutará en cada instancia. A medida que escala a varias instancias, esta misma plantilla de VM se usa en cada una de esas instancias.
Consulte también this answer, donde proporciono un poco más de detalle.
Como David mencionó en su respuesta, puede lanzar múltiples hilos. Uno de mis clientes hizo esto usando la clase ThreadedRoleEntryPoint.
Esta clase permite el uso de múltiples clases de punto de entrada de rol de trabajo (incluso de varios ensamblados) y ejecutarlos en el mismo papel:
public override void Run()
{
Trace.TraceInformation("WebRole::Run begin", "Information");
List<WorkerEntryPoint> workers = new List<WorkerEntryPoint>();
workers.Add(new Worker1());
workers.Add(new Worker2());
base.Run(workers.ToArray());
Trace.TraceInformation("WebRole::Run end", "Information");
}
La ventaja aquí es que se puede empezar poco a poco y correr todo trabajador roles (no roles de trabajador, pero llamémoslos procesos o trabajadores) en un solo rol (que realmente implementa).
Luego, cuando su negocio comience a crecer, podría comenzar a usar roles dedicados, lo que significa que tendrá al menos 1 instancia ejecutándose por rol de trabajador. Y cuando esto deba suceder, el impacto en su código será mínimo ya que los trabajadores pasaron a ThreadedRoleEntryPoint heredado de WorkerEntryPoint que se parece mucho a la clase RoleEntryPoint.
Sí, puedes. Aquí está el patrón de diseño http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2010/12/running-multiple-threads-on-windows.html
- 1. Volver misma instancia de múltiples interfaces
- 2. Uso de SignalR en Roles de trabajador de Azure
- 3. Varias funciones en la misma instancia en Windows Azure
- 4. Python: múltiples llamadas a __init __() en la misma instancia
- 5. hace múltiples trabajador Azure función de votación misma cola provoca Dead Lock o mensaje veneno
- 6. Roles e instancias de Azure
- 7. Cómo cambiar AMI en la misma instancia
- 8. MVC - Misma URL, múltiples vistas
- 9. VIM - comandos múltiples en la misma línea
- 10. Múltiples gráficas en la misma figura [R]
- 11. Elementos múltiples Haml en la misma línea
- 12. Mostrar actividades múltiples en la misma pantalla
- 13. Múltiples UIAlertViews en la misma vista
- 14. Guice - Cómo compartir la misma instancia de Singleton a través de múltiples inyectores/módulos
- 15. Mockito thenReturn devuelve misma instancia
- 16. ¿Se puede usar la misma instancia de CriteriaBuilder (JPA 2) para crear múltiples consultas?
- 17. Múltiples tiendas y administradores múltiples con diferentes roles
- 18. TopShelf instalar múltiples del mismo servicio en la misma máquina
- 19. Transformación del archivo de configuración con roles de trabajador de Azure
- 20. Permitir múltiples roles para acceder a la acción del controlador
- 21. Inyectar la misma instancia DataContext en varios tipos con Unity
- 22. Usando misma función que en la instancia y classmethod pitón
- 23. múltiples claves ajenas a la misma mesa
- 24. Notificaciones múltiples a la misma actividad
- 25. Usando la misma identificación para múltiples botones
- 26. Múltiples leyendas para la misma estética
- 27. ¿Cómo hacer la comunicación de trabajador a trabajador?
- 28. Ninject 3 InRequestScope no devolver la misma instancia de la misma petición
- 29. jQuery, la misma función para múltiples identificadores
- 30. ¿Está ejecutando múltiples agentes de TeamCity en la misma computadora?