Puede que no sea un consejo de "mejores prácticas" aquí ... pero en base a las necesidades y experiencia de la vida real: tenemos sistema distribuido, 60 cajas ejecutando cada 10 clientes todos hacen tarea X, y necesitan tomar la siguiente tarea de una cola. La cola se está alimentando desde otro "cliente" ...
Utilizamos la comunicación entre procesos, usamos MSMQ, probamos el intermediario de servicios ... Simplemente no funciona a largo plazo porque está dando lejos del control de su aplicación a Microsoft. Funciona muy bien siempre que sus necesidades estén satisfechas. se convierte en un infierno cuando necesitas algo que no es compatible.
La mejor solución para nosotros fue: utilizar una tabla de base de datos SQL como la cola. No reinvente la rueda allí, ya que cometerá errores (bloqueos). Hay información sobre cómo hacerlo, es muy fácil y manejamos más de 200,000 mensajes por 24H (con 60x10 = 600 lecturas concurrentes y escrituras en la cola). Es decir, además de la misma manipulación del resto de las cosas aplicación de servidor SQL ...
Algunas razones por las MSMQ no funciona:
Cuando es necesario cambiar la lógica de la cola de no FIFO, pero algo así como "el mensaje RED más antiguo" o "el mensaje AZUL más antiguo" no puede hacerlo. (Sé lo que las personas dirán, puede hacerlo teniendo una cola roja y una cola azul ... .Pero qué sucede si el número/tipo de colas es dinámico en función de la forma en que se administra la aplicación y cambia a diario ?)
Agrega un punto de falla y una pesadilla de implementación (la cola es un punto de falla y debe tratar de establecer los permisos correctos en todos los cuadros para leer/escribir mensajes, etc. 'en el software Enterprise que paga sangre para este tipo de cosas). servidor SQL ... todos los clientes están escribiendo/lectura ya desde la base de datos, es sólo uno más mesa ..
ese sitio (http://wsmq.net) no está caído, pero el dominio está a la venta. significa que WSMQ es RIP! –