2009-10-09 15 views
65

Necesitamos un sistema de mensajería/bus de servicio de arquitectura distribuida con la capacidad de Publicar/Suscribir. ¿Alguien tiene alguna recomendación para un framework que podamos usar para las aplicaciones .net?.net recomendaciones de bus de servicio?

+14

Estas preguntas son constructivas. Esta pregunta está en la parte superior de la búsqueda de Google y es muy útil. Lo mismo con mi pregunta sobre UML http://stackoverflow.com/q/6877121/377133 –

+4

Esto no es constructivo? Tienes que estar bromeando. Yo digo que esta pregunta es súper constructiva. El mejor recurso en este tipo de preguntas. – kheya

+2

@kheya Este tipo de preguntas no han sido consideradas constructivas por una miríada de razones (posibilidad de spam y cuán rápido estas herramientas se vuelven obsoletas). Aquí hay una respuesta sobre meta explicando eso, y estoy seguro de que hay más: http://meta.stackoverflow.com/a/251135/1195056 – krillgar

Respuesta

24

NServiceBus está creciendo en popularidad. También es de código abierto. Aquí está un Hanselminutes episode con Scott Hanselman hablando con Udi Dahan sobre NServiceBus para ayudar a asimilarlo. Definitivamente debes evaluar usarlo.

ACTUALIZACIÓN: También hay un episodio de TV DNR que muestra lo que es para construir una solución NServiceBus desde cero aquí: http://www.dnrtv.com/default.aspx?showNum=199

+34

Aunque es de código abierto, es posible que desee consultar su licencia. Solo algunos de los casos de uso son gratuitos.En otros casos, puede necesitar una licencia comercial que tiene un costo. – Manfred

+3

Es probable que desee alejarse de la descarga del código fuente nServiceBus, ya que el código fuente (después de la versión 2.0) no se concede con una licencia de código abierto (al menos, no es común). Entonces, al tener el código fuente, podrías encontrarte en un territorio legal turbio. Si eres una pequeña tienda web, probablemente no sea un problema real. Sin embargo, si usted es una compañía Fortune 500 con mucho dinero ... –

+0

Solo para aclarar algunos de los comentarios, NServiceBus usa una licencia Recíproca. Básicamente significa que debe abrir cualquier fuente con la que use NServiceBus. Si eso no funciona para ti, entonces debes comprarlo. – Vaccano

2

No hay ninguna aplicación madura servicio de autobuses en pila .NET hasta ahora. Microsoft actualmente está desarrollando uno.

http://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10).aspx

Como opción se puede utilizar uno de mundo Java. Por ejemplo, TIBCO - tienen clientes .NET bastante robustos disponibles, o OpenMQ.

Si no necesita una amplia gama de características y está listo para desarrollar su propio sistema, use WCF para esto. Las devoluciones de llamada WCF son adecuadas para esto.

+15

Creo que está confundiendo ESB para Mensajería. Tibco y OpenMQ son Message Queues. Simplemente proporcionan el mecanismo de transporte. Nada mas. Acerca de .NET Implementaciones de bus de servicio: Tiene más o menos razón, aunque NServicebus se acerca mucho a un producto maduro y los esfuerzos parecen estar allí para hacerlo. Y como alguien que construye varias soluciones usando WCF como un bus de servicio: No ... WCF no es adecuado para esto. Pub/sub en WCF es una pita por decir lo menos y requerirá una profunda inmersión profunda en WCF y su arquitectura para descubrir que no está hecha para eso. – Noctris

+0

En mi humilde opinión no es cierto. Neuron ESB es estable y maduro, y está basado en tecnología Microsoft (.NET incluye WCF/MSMQ, etc.) – larsw

3

Encontré ActiveMQ integrado en Apache NMS para ser increíblemente fácil de entender, configurar y transparente.

Por ejemplo, ActiveMQ viene con una interfaz web que le permite usar un navegador web para buscar colas de mensajes y leer, eliminar e incluso crear mensajes. Por lo tanto, puede comenzar fácilmente a desarrollar y probar solo un lado de su aplicación distribuida, y la depuración y el monitoreo son muy sencillos.

+3

NServiceBus puede ejecutarse en ActiveMQ (entre otras colas) a partir de la versión 4.0, ofreciéndole lo mejor de ambos mundos. –

3

Actualmente estoy trabajando en un bus de servicio basado en WCF de fuente abierta. Puede encontrarlo aquí: http://rockbus.codeplex.com/. Admite suscripciones dinámicas (@ tiempo de ejecución), repositorio de suscripciones (base de datos), transportes conectables, enrutamiento basado en contenido basado en XPath, entrega transaccional a través de protocolos wcf, entrega de redireccionamiento, evaluación de suscripción conectable y más. ¡Echar un vistazo!

2

He encontrado que Neuron ESB es una implementación sólida, aunque todavía no lo he usado con ira.

5

Consulte RabbitMQ. El cliente .NET tiene todas las funciones y es bastante fácil de usar. Hay un libro llamado RabbitMQ in Action, así como RabbitMQ in Depth que está disponible en ediciones de acceso temprano.

+0

¿No es RabbitMQ solo una cola de mensajes de código abierto? No lo creo en sí mismo es en realidad un marco de servicio de autobús. – gabe

+0

Técnicamente es un intermediario de mensajes. Si cumple con los requisitos para un proyecto, ¿le importa cómo la gente lo categoriza? – TrueWill

+2

¡Saber que es más un corredor es útil! no me importan los términos, sino tratar de adaptar mi cerebro a las diferencias entre estos técnicos (ya que esta es la naturaleza de este q/a). Recordé esta interesante publicación sobre algunas de las diferencias entre corredores y autobuses: http://www.udidahan.com/2011/03/24/bus-and-broker-pubsub-differences/. – gabe

Cuestiones relacionadas