Pregunta

Estoy trabajando en una mensajería/sistema de notificación de nuestros productos.Requisitos básicos son:

  • Dispara y olvida
  • Persistente de un conjunto de mensajes, posiblemente la actualización, para permanecer allí hasta que el remitente dice para eliminarlos

Las bibliotecas será escrito en C#.Spring.NET acaba de publicar un hito construir con un montón de buena mensajería de la abstracción, que es gran - pienso usar ampliamente.Mi pregunta básica se reduce a la cuestión de mensaje de corredores.Mi arquitectura se verá algo como app -> cola de message broker -> servidor de aplicación que escucha, envía todos los mensajes a donde tienen que ir, y gestiona el ciclo de vida de aquellos de larga duración mensajes -> message broker de cola o de tema -> escucha aplicaciones.

Finalmente, la pregunta:Que broker de mensajes debo usar?Estoy sesgado hacia el ActiveMQ - Lo hemos utilizado en nuestro último proyecto y me encantó.Realmente no puedo pensar en una sola huelga en contra de ella, excepto que es Java, y se requieren java para ser instalado en un servidor en algún lugar, y que podría ser difícil de vender a algunas de las personas que van a utilizar este servicio.La otra opción que he estado mirando es MSMQ.Estoy sesgado en contra de ella por alguna razón desconocida, y además, no parece tener gran soporte de multidifusión.

Alguien ha utilizado MSMQ para algo como esto?Cualquier pros o contras, cosas que podrían influir en el voto de una manera o de la otra?

Una última cosa, estamos utilizando .NET 2.0.

¿Fue útil?

Solución

Yo soy un poco sesgada como yo trabajo en ActiveMQ pero casi todos los beneficios mencionados para MSMQ también se aplicará a ActiveMQ realmente.

Algunos de los beneficios más de ActiveMQ incluyen

El principal inconveniente que mencionar es que el intermediario ActiveMQ está escrito en Java;pero se puede ejecutar en IKVM como un .neto de la asamblea, si usted realmente quiere - o bien se puede ejecutar como un servicio de windows, o compilar una DLL/EXE a través de GCJ.MSMQ puede o no puede ser escrita .NET - pero realmente no importa mucho cómo su implementado derecho?

Independientemente de si usted decide MSMQ o ActiveMQ yo recomiendo al menos considerando el uso de la NMS DE LA API que como dices está integrado en gran Spring.NET.Hay un MSMQ aplicación de esta API, así como implementaciones para TibCo, ActiveMQ y STOMP que será compatible con cualquier otro proveedor JMS a través de StompConnect.

Así que al elegir NMS como su API va a evitar lockin a cualquier tecnología patentada - y entonces usted puede cambiar fácilmente de mensajería proveedores en cualquier punto en el tiempo;en lugar de cierre de su código todo en una propiedad de la API

Otros consejos

Pros de MSMQ.

  • Está integrada en Windows
  • Soporta transacciones, también es compatible con las colas con transacciones no
  • Es realmente fácil de configurar
  • ANUNCIO de la Integración
  • Es rápido, pero usted tendría que comparar ActiveMQ y MSMQ para su tráfico de saber que es más rápido.
  • .NET soporta la natividad
  • Apoya a disparar y olvidar
  • Usted puede mirar en la cola, si tienes lectores que solo mira.no estoy seguro si se puede editar un mensaje en la cola.

Contras:

  • 4 mb de límite de tamaño de mensaje
  • 2 gb de tamaño de la Cola de límite
  • Los elementos de la cola son almacenados en disco
  • No una corriente principal de la MS del producto, docs son un poco dudoso, o se ha sido un par de años desde que la he usado.

Aquí es un buen blog para MSMQ

Echa un vistazo a zeromq.Es uno de los más rápidos de las colas de mensajes alrededor.

Le sugiero que eche un vistazo a TIBCO Empresa de Mensajería - Servicio de EMS, que es un alto rendimiento de mensajería de producto que admite multidifusión, enrutamiento, admite la especificación JMS y proporciona a las empresas muchas características incluyendo sus requisitos como el fuego olvidar y mensaje de persistencia mediante archivo/base de datos con estado compartido.

Como referencia, FEDEX se ejecuta en TIBCO EMS como su infraestructura de mensajería.

http://www.tibco.com/software/messaging/enterprise_messaging_service/default.jsp

Hay muchas otras referencias, si me ofrecen, realmente te sorprenderá.

Hay tantas opciones en esa arena...

Libre:MantaRay un peer to peer totalmente JMS compatible con el sistema.La parte interesante de Mantaray es que usted sólo necesita definir donde el mensaje llega y MantaRay rutas de todos modos que su mensaje es detination - así que es más resistente a los fallos de los nodos individuales en sus mensajes de tela.

Pagado:En mi trabajo diario me administrar un IBM WebSphere MQ sistema de mensajería con varios cientos de nodos y se han encontrado para ser muy bueno.También hemos adquirido recientemente Tibco EMS y parece que va a ser bastante agradable de usar.

Pablo/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top