Actualmente estoy diseñando una aplicación que en última instancia querré mover a Windows Azure. A corto plazo, sin embargo, se ejecutará en un servidor que alojaré yo mismo.¿Buena estrategia para Message Queue Server?
La aplicación implica una serie de aplicaciones web separadas, algunas de ellas son esencialmente servicios de WCF que reciben datos, y algunas son sitios para que los usuarios administren datos. Además, deberá haber un servicio de trabajador ejecutándose en segundo plano que procesará los datos de varias maneras.
Estoy muy interesado en utilizar una arquitectura desacoplada para esto. Lo ideal es que desee que los componentes (es decir, las aplicaciones web y el servicio de los trabajadores) sepan lo menos posible el uno del otro. Parece que usar una cola de mensajes será la mejor solución aquí: las aplicaciones web pueden enrutar mensajes con unidades de trabajo en la cola y el servicio de trabajadores puede seleccionarlos y procesarlos según sea necesario.
Sin embargo, quiero elaborar un buen conjunto de tecnologías para hacer esto, teniendo en cuenta que en última instancia me mudaré a Azure y quiero minimizar la cantidad de trabajo que tendré que hacer cuando migrar a la nube Azure tiene un componente Queue incorporado que parece ideal para mis necesidades. Lo que me gustaría hacer es crear algo yo mismo que lo imite lo más posible.
Parece que hay varias opciones (estoy usando .NET en Windows, con un back-end de SQL Server 2005) - los que he encontrado hasta ahora son:
- MSMQ
- corredor de servicio de SQL Server
- Rodando mi propia utilizando una tabla de base de datos y algunos procedimientos almacenados
me preguntaba si alguien tiene alguna sugerencia para esto - o si alguien ha hecho algo similar y tiene consejos sobre cosas que hacer/evitar Me doy cuenta de que cada situación es diferente, pero en este caso creo que mis requisitos de colas son bastante genéricos, así que me encantaría escuchar los pensamientos de otras personas sobre la mejor manera de hacerlo.
Gracias de antemano,
John
Gracias! Eso es muy útil. Parece que MSMQ podría ser una mejor opción para nuestros propósitos: supongo que un gran paso siguiente será comparar MSMQ con Azure Queuing. Sé, por ejemplo, que Azure no garantiza que los mensajes se entreguen en orden (o solo una vez), así que tendré que comprobar esto en MSMQ para ver cuál es el comportamiento correspondiente. Pero gracias de nuevo por esto, es una comparación muy informativa. – John