近段时间在看SOA,在国外网站有很多资料可以查看,本来在中文网站中找到一片关于这两个框架的对比介绍的可惜笔者没有认真翻译,只有花点时间自己翻译了一个版本,希望对技术界的朋友有所帮助。
我正纠结于NServiceBus和MassTransit的选择上的利弊。
现在我已经知道一些思路,但是这些并不能真正回答了我的疑问。
下面是我已经知道的内容:
- 1、NServiceBus,它是需要序列的,不是免费的。
- 2、MassTransit,它是开源的,但是文档似乎比较欠缺。
NServiceBus 出现的更早,有更多的引用文章介绍,MassTransit很难找到关于它的内容,但是我是一个开源思路支持者。然而我又必须选择一个可靠的解决方案,所以我需要一些帮助。
所以,我希望这里有对这两个框架有经验的人告诉我,为什么我应该选择NServiceBus?或者为什么我应该选择MassTransit?
是关于稳定、安全、可扩展还是别的什么?
回答者1:
如果是我去总结,下面是我的观点:
如果你需要商业支持,请选择NServiceBus.如果你习惯于在博客,开源社区寻求支持,MassTransit会使一个不错的选择。开发者们非常愿意回答我们提出的问题的。
如果你选择MassTransit,现在你需要选择从MSMQ和RabbitMQ中选择一种作为你的队列服务器。如果你需要DTC 请选择MSMQ。如果你需要更多功能并且更好的管理,请选择RabbitMQ。
在我们的项目中,有两个因素促使我们把NServiceBus迁移到MassTransit:
- 1、MassTransit 是 免费的
- 2、我们喜欢RabbitMQ
回答者2:
我用过这两个框架。 我用MassTransit的时间比NServiceBus要长。下面是我对这两个框架亮点的概述。
成本上:
MassTransit 是 Apache 2.0许可的可以免费用于商业产品,然而NServiceBus不是。
技术支持上:
在Udi上提到,有关于NServiceBus的商业支持选项,但是在MassTransit上没有。
传输介质:
MassTransit 支持 MSMQ和RabbitMQ。
NServiceBus的早期版本只支持MSMQ,RabbitMQ的支持是在NServiceBus4+的版本中。
RabbitMQ 和 MSMQ的比较:
MSMQ 支持 DTC(分布式事务调度)包括多进程可能在多台计算机上运行的事务集合(e.g.SQL Server,Windows Service)
RabbitMQ 有一个杰出的管理接口
MSMQ存在已久并且是微软的产品
RabbitMQ 新一点,开源,免费,由VMWare赞助
MSMQ作为默认被安装在所有的Windows系统上
Udi Dahan 和 MassTransit 团队的成员们(Chris Patterson, Dru Sellers, and Travis Smith) 都是杰出的人才
回答者3:
作为NServiceBus的原创作者,我显然更倾向于选择自己的技术,所以我会尽我所能试着让它更稳定。
更新:现在在Particular Service平台上有关于NServiceBus的监视和调试工具可以获得,这些工具在你的基于消息的系统上
创建和运行更容易。在技术的完整性上,我相信这种强大的提示和稳定在NServiceBus中的支持。
结束更新
在早期,我曾经追踪过MassTransit的发展。最近我没有这么多的时间去关注了,所以我认为两个系统在替代生态系统都有它们自己对的和自己的关注地方。
这里有很多社区都围绕着NServiceBus,所以如果你需要帮助,这里有很多人可以帮助你解决问题。
意思就是说,MassTransit的核心团队一直非常擅长帮助提那些问题的人解决他们的问题。
在 NServiceBus,公司可以购买技术支持这种技术支持保证在世界范围内和24x7小时内能得到答复。我不相信MassTransit的团队也能提供相似的服务。
在线下,NServiceBus在世界各地有很多公共课程可以得到。也有很多顾问在现场去安装一个项目或者参与协助遇到的问题。我已经听到几个公司都决定从MassTransit迁移到NServiceBus
原因是MassTransit不能在他们需要技术支持的时候提供一个人在现场提供支持。
我想说的是,NServiceBus的许可模式可以足够灵活的去适应任何预算,在大部分的客户频谱上显示,这样对管理也合乎情理。当然,对于MassTransit,许可是免费的。
希望这些话对你有帮助。
原文:http://stackoverflow.com/questions/13647423/nservicebus-vs-masstransit
I'm struggling with a pros and cons list regarding NServiceBus and MassTransit.
Now I know there is already a thread in here, but it doesn't really answer my questions.
Here is what I've read so far:
- NServiceBus, yes it's licensed and it doesn't come for free.
- MassTransit, yes it's open source, but the documentation seems to lack somewhat.
NServiceBus is older, and has more references. It's hard to find stuff about MassTransit, but I'm open-minded. However I have to deliver a solid solution, and so I have to ask.
So please, someone with experience with both frameworks. Why should I choose NServiceBus? OR Why should I choose MassTransit?
Is it performance, security, scale or?
If I had to summarize, here's what I'd say:
If you need commercial support, go for NServiceBus. If you're comfortable with using forums as a means of support, MassTransit is a great option. The developers have been very responsive to our issues so far. If you choose MassTransit, now you will choose between MSMQ and RabbitMQ. If you need DTC go with MSMQ. If you want more features and better administration, go with RabbitMQ.
On our project, we switched from NServiceBus to MassTransit for two reasons:
- MassTransit is free
- We love RabbitMQ
I've used both frameworks. I've used MassTransit longer than NServiceBus. Here are the highlights as I see them.
Cost:
- MassTransit is Apache 2.0 licensed and free for commercial production use, whereas NServiceBus is not.
Support:
- As Udi mentioned, there is an option for commercial NServiceBus support, I haven't seen that for MassTransit.
Transport:
- MassTransit supports MSMQ and RabbitMQ
NServiceBus supports only MSMQRabbitMQ is supported in NServiceBus 4+
RabbitMQ vs MSMQ:
- MSMQ support DTC (distributed transaction coordinator) for transactions involving multiple processes on potentially multiple machines (e.g. SQL server, Windows Service)
- RabbitMQ has an excellent Administration interface
- MSMQ has been around longer and is a Microsoft product
- RabbitMQ is newer, open source, free, and sponsored by VMWare
- MSMQ is installed on most Windows machines by default
Udi Dahan and the MassTransit guys (Chris Patterson, Dru Sellers, and Travis Smith) are all brilliant people.
As the original author of NServiceBus, I'm clearly biased towards my own technology, so I'll try to keep this as balanced as I can.
Update: There are now monitoring and debugging tools available for NServiceBus through theParticular Service Platform which make building and running message-based systems much easier. With full technical integrity, I believe that this strongly tips the balance in favor of NServiceBus. End Update
While in the early days I did track much of the MassTransit development, I haven't had much time to do that recently, so I'll assume that both technologies are equally good in their own right and focus on the ecosystem instead.
There is a larger community around NServiceBus, so if you need help, there are more people who can give it. That being said, the core group of MassTransit have always been extremely good at helping anyone who has issues.
With NServiceBus, companies can purchase support and get guaranteed response times on their issues - 24x7, around the world. I don't believe a similar offering is available from the MassTransit guys.
From an offline perspective, there are public courses available around the world on NServiceBus as well as many consultants who can be brought on-site to kickstart a project or to assist in case of problems. I've heard from several companies that decided to switch from MassTransit to NServiceBus because they couldn't get someone on-site when they needed it.
I'd say that the licensing models around NServiceBus are flexible enough to suit any budget, as the broad spectrum of customers indicates, and can be well justified to management. Of course, with MassTransit, the licensing is free.
Hope that helps in some way.