2009-10-21 31 views
103

Simplemente haciendo algunos picos rápidos en la posibilidad de utilizar un sistema de mensajería para procesar archivos que se encuentran en un sistema de flujo de trabajo muy desacoplado.nServiceBus vs Mass Transit vs Rhino Service Bus vs otro?

¿Cuáles son los pro y los contras que las personas han encontrado al usar cada uno de los marcos anteriores? ¿Cuáles son las ventajas de usar estos frente a un sistema MSMQ enrollado a mano con los enlaces WCF y/o soluciones que no son de MSMQ?

Respuesta

71

Recomiendo mantenerse alejado de las soluciones laminadas a mano, ya que hay un montón de cosas difíciles de conseguir, como cómo se manejan las transacciones, cómo las excepciones causan retrocesos, cómo dejar de retroceder interminablemente (mensajes de envenenamiento), cómo integrarse con flujos de trabajo de larga duración para que los límites de gestión del estado se alineen, y más.

Es probable que desee algún tipo de infraestructura de mensajería duradera/transaccional, por lo que si no usa MSMQ, se quedaría con Service Broker en la plataforma de Microsoft o alguna otra alternativa, como ActiveMQ. MSMQ tiene la ventaja de que ya está instalado en todas las máquinas con Windows, a diferencia de Service Broker que no lo está.

En términos de elegir entre NServiceBus, Mass Transit y Rhino Service Bus, se puede caracterizar por el gusto que prefiera, aunque NServiceBus lleva más tiempo en funcionamiento y es posiblemente el más estable.

En nuestra versión 3.1, presentamos NSB Studio, un conjunto de herramientas de modelado integradas de Visual Studio que le permiten modelar su sistema a un nivel superior de abstracción y que la configuración y la inicialización de NServiceBus se realicen en gran medida. usted automáticamente Diría que esto realmente inclina la balanza a favor de NServiceBus.

Espero que ayude.

Descargo de responsabilidad: soy el autor de NServiceBus.

+0

¿Puede explicar "qué tipo de gusto prefiere"? ¿Cuáles son algunas de las diferencias más notables entre su nServiceBus y las otras soluciones (además de ser la más antigua y la más estable)? – mwjackson

+25

Rhino Service Bus está muy centrado en Castle. Si no está familiarizado/cómodo con Castle como parte central de la arquitectura de su aplicación, es posible que tenga alguna dificultad. NServiceBus y Mass Transit o más agnóstico de contenedor. NServiceBus viene con un "servidor de aplicaciones" que maneja el alojamiento de su código y cambia las implementaciones de la infraestructura activa (como en memoria, MSMQ y DB) mientras hace la transición de su sistema de desarrollo a prueba a prod. También viene con instalaciones de prueba de unidad para su lógica de manejo de mensajes y procesos de larga ejecución. No creo que MassTransit tenga esto. –

+0

Genial, gracias Udi! – mwjackson

9

una posible estafa de cualquier cosa basada en MSMQ es la restricción en el tamaño máximo de mensaje. IIRC es de aproximadamente 4MB, con el que podría encontrarse fácilmente si está tratando con archivos de gran tamaño y almacenando el contenido del archivo dentro del mensaje.

+7

Curiosamente, la mayoría de las colas basadas en la nube ni siquiera admiten cargas de 100KB, por lo que es algo que deberán tener en cuenta muchas aplicaciones en el futuro. –

+32

En los patrones de integración empresarial (Woolf, Hohpe), el patrón de verificación de reclamaciones aborda específicamente esta preocupación. Una referencia a la carga útil grande se mantiene en el mensaje solamente, manteniendo el mensaje pequeño. Los grandes tamaños de mensajes pueden causar estragos en el rendimiento de un sistema de mensajería. –

+4

Esto no es un problema con NServiceBus ya que tienen un concepto de un bus de datos, que funciona de manera transparente en cuanto a las limitaciones de tamaño. –

50

NServiceBus es un buen producto pero ten cuidado con los problemas de licencia. Tiene una tendencia a cambiar su política de licencias como lo desean los autores. Eche un vistazo por ejemplo al old license information.

Puede suceder que en el medio del desarrollo de su proyecto descubra que tiene que pagar mucho dinero por NServiceBus.

También la versión gratuita tiene limitaciones de rendimiento.

MassTransit es un código abierto totalmente gratuito, no tiene limitaciones y tiene licencia de Apache 2.0.

No he usado Rhino Service Bus.

+1

En realidad, le proporcionaremos una nueva licencia con la versión 3.1 que le permitirá ejecutarla en múltiples máquinas de forma gratuita (aunque a niveles más bajos de rendimiento). –

+11

MassTransit es tu hombre. Es gratis; sin restricciones de licenciaSi puede prescindir de un diseñador de flujo y puede hacer su propio rollo a mano, no podrá superarlo. También se puede colocar encima de RabbitMQ y MSMQ tiene complementos de Azure de la comunidad. MassTranit + RabbitMQ ha demostrado ser un excelente entorno estable y muy rápidamente le permite poner en marcha a sus consumidores/productores. – Bigtoe

+3

Considere también EasyNetQ (envoltorio simple alrededor de rabbitMQ) UDI sorprendido no pesa más en discusiones con sugerencias 4 buenas alternativas 2 nServiceBus? Lo que quiero decir. ayudar a la gente en el viaje de mensajería en las primeras etapas. Hay muchas buenas maneras simples (gratuitas) 2 de empezar; realmente no importa lo que uses, siempre y cuando sea fácil e idealmente gratis; (gratis para jugar, y gratis para implementar de verdad, y libre de cambiar también más adelante). Una vez que esté creciendo, desarrollará su propia lista de preocupaciones; en ese punto, los productos más maduros serán una decisión fácil, con justficaciones de costos fáciles, p. nservicebus. – snowcode

25

una actualización del estado de Rhino vs NServicebus:

http://www.infoq.com/news/2012/04/nservicebus3-0

InfoQ a Ayende:anteriormente ha escrito un bus de servicios para .NET a sí mismo, a saber, el servicio de autobuses Rhino .¿Deberían los usuarios de Rhino Service Bus reconsiderar y pasar a NServiceBus?

Ayende: que construyeron Rhino Service Bus en 2008. La construí sobre todo porque no estaba contento con el estado de los otros buses de servicio al el tiempo. He tenido diferentes preocupaciones y dirección al construir mi bus de servicio , pero eso fue hace 4 años. En ese momento, creo que NServiceBus hizo grandes avances para convertirse en un producto más fácil de usar y tener una historia de desarrollo mucho mejor. Si estuve en el comenzando con los autobuses de servicio hoy, dudo mucho que yo construya el mío .