web-dev-qa-db-fra.com

nServiceBus vs Mass Transit vs Rhino Service Bus vs autres?

Juste faire quelques pics rapides pour éventuellement utiliser un système de messagerie pour traiter les fichiers qui sont dans un système de flux de travail bien découplé.

Quels sont les avantages et les inconvénients que les gens ont trouvés en utilisant chacun des cadres ci-dessus? Quels sont les avantages de leur utilisation par rapport à un système MSMQ roulé à la main avec les liaisons WCF et/ou des solutions non MSMQ ??

103
mwjackson

Je recommanderais de rester à l'écart des solutions roulées à la main car il y a un tas de choses quelque peu difficiles qui doivent être bien faites - comme la façon dont les transactions sont gérées, comment les exceptions provoquent des retours en arrière, comment arrêter sans fin de revenir en arrière (messages empoisonnés), comment s'intégrer à des workflows de longue durée afin que les limites de la gestion des états s'alignent, et plus encore.

Vous voudrez probablement une sorte d'infrastructure de messagerie durable/transactionnelle, donc si vous n'utilisez pas MSMQ, vous vous retrouverez avec Service Broker sur la plate-forme Microsoft, ou une autre alternative comme ActiveMQ. MSMQ a l'avantage d'être déjà installé sur toutes les machines Windows, contrairement à Service Broker qui ne l'est pas.

En termes de choix entre NServiceBus, Mass Transit et Rhino Service Bus - cette réponse Stackoverflow en comparant NServiceBus à MassTransit serait un bon point de départ.

Dans notre version 3.1, nous introduisons NSB Studio - un ensemble d'outils de modélisation intégrés Visual Studio qui vous permettent de modéliser votre système à un niveau d'abstraction plus élevé et de faire une grande partie de la configuration et de l'initialisation de NServiceBus pour vous automatiquement. Je dirais que cela fait vraiment pencher la balance en faveur de NServiceBus.

J'espère que cela pourra aider.

Avertissement: je suis l'auteur de NServiceBus.

71
Udi Dahan

NServiceBus est un bon produit mais méfiez-vous des problèmes de licence. Il a tendance à modifier sa politique d'octroi de licences comme le souhaitent les auteurs. Jetez un œil par exemple à anciennes informations de licence.

Il peut arriver qu'au milieu du développement de votre projet, vous découvrirez que vous devez payer beaucoup d'argent pour NServiceBus.

La version gratuite a également des limitations de performances.

MassTransit est un open source absolument gratuit, il n'a aucune limitation et est sous licence Apache 2.0.

Je n'ai pas utilisé Rhino Service Bus .

52
Alex Burtsev

Une mise à jour de l'état de Rhino vs NServicebus:

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

InfoQ à Ayende: Vous avez déjà écrit un bus de service pour .NET vous-même, à savoir le Rhino Service Bus. Les utilisateurs de Rhino Service Bus devraient-ils maintenant reconsidérer et passer à NServiceBus?

Ayende: J'ai construit Rhino Service Bus vers 2008. Je l'ai construit principalement parce que je n'étais pas satisfait de l'état des autres bus de service à l'époque. J'ai eu des préoccupations et des orientations différentes lors de la construction de mon bus de service, mais c'était il y a 4 ans. À cette époque, je pense que NServiceBus a fait de grands progrès pour devenir un produit plus facile à utiliser et avoir une bien meilleure histoire de développement. Si je commençais avec des bus de service aujourd'hui, je doute fortement que je construirais le mien.

25
Ciprian Teiosanu

un inconvénient potentiel de tout ce qui est basé sur MSMQ est la restriction de la taille maximale des messages. IIRC c'est environ 4 Mo, que vous pourriez facilement rencontrer si vous traitez de gros fichiers et stockez le contenu du fichier dans le message.

9
quick_dry