2009-10-09 15 views
65

Nous avons besoin d'un système de messagerie/bus de service à architecture distribuée avec la possibilité de publier/souscrire. Quelqu'un a-t-il des recommandations pour un framework que nous pouvons utiliser pour les applications .net?.net recommandations de bus de service?

+14

De telles questions sont très constructives. Cette question est sur le dessus de la recherche Google et est très utile. La même chose avec ma question sur UML http://stackoverflow.com/q/6877121/377133 –

+4

Ce n'est pas constructif? Tu te fous de moi. Je dis que cette question est super constructive. Meilleure ressource sur ce type de question. – kheya

+2

@kheya Ces types de questions ont été jugés non constructifs pour une myriade de raisons (potentiel de spam, et à quelle vitesse ces outils deviennent obsolètes). Voici une réponse sur meta expliquant cela, et je suis sûr qu'il y en a d'autres: http://meta.stackoverflow.com/a/251135/1195056 – krillgar

Répondre

24

NServiceBus gagne en popularité. C'est aussi open source. Voici un Hanselminutes episode avec Scott Hanselman discutant avec Udi Dahan à propos de NServiceBus pour aider à le faire. Vous devriez certainement évaluer en l'utilisant.

MISE À JOUR: Il y a aussi un épisode TV DNR qui montre ce qu'il est comme construire une solution NServiceBus à partir de zéro ici: http://www.dnrtv.com/default.aspx?showNum=199

+34

Bien qu'il soit open source, vous voudrez peut-être regarder leur licence. Seuls certains cas d'utilisation sont gratuits.Dans d'autres cas, vous pourriez avoir besoin d'une licence commerciale qui a un coût. – Manfred

+3

Vous voulez probablement éviter de télécharger le code source de nServiceBus, car le code source (après la version 2.0) n'est pas accordé avec une licence open source (du moins, pas une commune). Donc, en ayant le code source, vous pourriez potentiellement vous trouver dans un territoire légal obscur. Si vous êtes un petit magasin en ligne, ce n'est probablement pas un problème réel. Si vous êtes une entreprise Fortune 500 avec des poches profondes, cependant, ... –

+0

Juste pour clarifier certains commentaires, NServiceBus utilise une licence réciproque. Cela signifie essentiellement que vous devez ouvrir tout ce que vous utilisez avec NServiceBus. Si cela ne fonctionne pas pour vous, alors vous devez l'acheter. – Vaccano

2

Il n'y a pas de service de bus dans la mise en œuvre mûre pile .NET jusqu'à présent. Microsoft en développe actuellement un.

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

En option, vous pouvez utiliser un monde de Java. Par exemple, TIBCO - ils ont des clients .NET assez robustes ou OpenMQ.

Si vous n'avez pas besoin d'un large éventail de fonctionnalités et que vous êtes prêt à développer votre propre système, utilisez WCF pour cela. Les rappels WCF sont bien adaptés pour cela.

+15

Je pense que vous confondez ESB pour la messagerie. Tibco et OpenMQ sont des files d'attente de messages. Ils fournissent simplement le mécanisme de transport. Rien de plus. A propos des implémentations de bus de service .NET: Vous avez plus ou moins raison, bien que NServicebus se rapproche d'un produit mature et que les efforts semblent être là pour le faire. Et comme quelqu'un qui a partiellement construit plusieurs solutions en utilisant WCF comme un servicebus: Non .. WCF n'est pas adapté pour cela. Pub/sub dans WCF est un pita pour le moins et exigera une plongée sérieuse profonde dans WCF et son architecture pour découvrir seulement que ce n'est pas fait pour cela. – Noctris

+0

IMHO pas vrai. Neuron ESB est stable et mature - et construit sur la technologie Microsoft (.NET y compris WCF/MSMQ etc.) – larsw

3

J'ai trouvé ActiveMQ intégré dans Apache NMS pour être incroyablement facile à comprendre, à configurer et à transparent. Par exemple, ActiveMQ est livré avec une interface Web vous permettant d'utiliser un navigateur Web pour consulter les files d'attente de messages, lire, supprimer et même créer des messages. Vous pouvez donc très facilement commencer à développer et à tester un seul côté de votre application distribuée, et le débogage et la surveillance sont très simples.

+3

NServiceBus peut fonctionner sur ActiveMQ (parmi d'autres files d'attente) à partir de la version 4.0 pour vous offrir le meilleur des deux mondes. –

3

Je travaille actuellement sur un bus de service open source basé sur WCF. Vous pouvez le trouver ici: http://rockbus.codeplex.com/. Il prend en charge les abonnements dynamiques (@ run-time), le référentiel de souscription (base de données), les transports enfichables, le routage basé sur XPath, la livraison transactionnelle sur les protocoles wcf, la livraison roundrobin, l'évaluation des abonnements enfichables, etc. Regarde!

2

J'ai trouvé Neuron ESB pour être une implémentation solide, bien que je ne l'ai pas encore utilisé en colère.

5

Découvrez RabbitMQ. Le client .NET est complet, et il est assez facile à utiliser. Il y a un livre appelé RabbitMQ in Action, ainsi que RabbitMQ in Depth disponible dans les éditions à accès anticipé.

+0

RabbitMQ n'est-il pas simplement une file d'attente de messages open source? Je ne crois pas que ce soit en soi un cadre de bus de service. – gabe

+0

Techniquement, c'est un courtier de messages. S'il répond aux exigences d'un projet, vous souciez-vous de la façon dont les gens le classent? – TrueWill

+2

Sachant que c'est plus un courtier est utile thx! Je ne me soucie pas des termes mais d'essayer d'envelopper mon cerveau autour des différences entre ces technologies (puisque c'est un peu la nature de ce q/a). Je me suis souvenu de ce post intéressant sur certaines des différences entre les courtiers et les bus: http://www.udidahan.com/2011/03/24/bus-and-broker-pubsub-differences/. – gabe