近段时间在看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:

  1. NServiceBus, yes it's licensed and it doesn't come for free.
  2. 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:

  1. MassTransit is free
  2. 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 MSMQ RabbitMQ 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.

NServiceBus VS MassTransit 从 stackoverflow.com 翻译而来,希望对这两个技术比较关心的同学有帮助的更多相关文章

  1. StackOverFlow排错翻译 - Python字符串替换: How do I replace everything between two strings without replacing the strings?

    StackOverFlow排错翻译 - Python字符串替换: How do I replace everything between two strings without replacing t ...

  2. 20.翻译系列:Code-First中的数据库迁移技术【EF 6 Code-First系列】

    原文链接:https://www.entityframeworktutorial.net/code-first/migration-in-code-first.aspx EF 6 Code-First ...

  3. [翻译]Orchard如何工作

    Orchard一直是博主心中神一般的存在,由于水平比较菜,Orchard代码又比较复杂看了几次都不了了之了.这次下定决心要搞懂其工作原理,争取可以在自己的项目中有所应用.为了入门先到官网去学习一下相关 ...

  4. WebForms VS. MVC(翻译)

    (本文翻译自CodeProject上阿三写的一篇文章,原文地址:http://www.codeproject.com/Articles/528117/WebForms-vs-MVC,讲了有关ASP.A ...

  5. 《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章  ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架 ...

  6. Oracle 12.1.0.2 New Feature翻译学习【In-Memory column store内存列存储】【原创】

    翻译没有追求信达雅,不是为了学英语翻译,是为了快速了解新特性,如有语义理解错误可以指正.欢迎加微信12735770或QQ12735770探讨oracle技术问题:) In-Memory Column ...

  7. 【翻译】ASP.NET MVC 5属性路由(转)

    转载链接:http://www.cnblogs.com/thestartdream/p/4246533.html 原文链接:http://blogs.msdn.com/b/webdev/archive ...

  8. Inkpad中文翻译已合并到官方项目

    今天 Steve Sprang 已合并了#100提交请求,Inkpad即将在AppStore上发布简体中文版了! 20天前因一个偶然原因启动翻译的: 当晚(周六)我想对iPad上的矢量绘图软件进行交互 ...

  9. 【翻译】CEDEC2014 CAPCOM 照相机正确的照片真实的制作工作流

     这次带来的翻译是Capcom在CEDEC2014上发表的技术美术相关的资料.资料的目的,就是在已经拥有了一套基于物理的渲染引擎的前提下,如何进行图片真实的材料的拍摄并制作为引擎里的材质,以及如何正确 ...

随机推荐

  1. 虚拟机压力测试延迟高的可能原因及 ILPIP 配置 / 查询脚本

    测试初期 Client VM 的延迟结果正常: 测试后期 Client VM 的延迟偶尔突增/连接失败,越后期超高延迟(比如 30 秒)出现越多: 问题分析 造成这一现象的根本原因很可能是 SNAT( ...

  2. Oracle EBS 贷项通知单核销

    SELECT cm.trx_number ,fnd_flex_ext.get_segs('SQLGL', 'GL#', gcc.chart_of_accounts_id, ad.code_combin ...

  3. Linux开启和关闭防火墙

    一.即时生效,重启后失效: 1.启动:service iptables start 2.关闭:service iptables stop 二.重启后永久生效: 1.启动:chkconfig iptab ...

  4. Coursera-AndrewNg(吴恩达)机器学习笔记——第四周编程作业(多分类与神经网络)

    多分类问题——识别手写体数字0-9 一.逻辑回归解决多分类问题 1.图片像素为20*20,X的属性数目为400,输出层神经元个数为10,分别代表1-10(把0映射为10). 通过以下代码先形式化展示数 ...

  5. October 17th 2017 Week 42nd Tuesday

    We execuse our sloth under the pretext of difficulty. 我们常以困难为由,作为懒惰的借口. The process of my system-tra ...

  6. [BUG]自己的bug自己解,记一次在变量使用过程引发的bug

    [实现的功能要求]在短信编辑界面,将所有的emoji表情全部插入到编辑区域,其中表情共有5页,每遍历完一页时需要自动翻页重新获取表情并插入,在第5页中只有10个表情 下面先看看这段代码,大家能否看出有 ...

  7. Windows+Python+anaconda机器学习安装及环境配置步骤

    Windows+Python+anaconda机器学习安装及环境配置步骤 1. 下载安装python3.6以上版本(包含pip,不用自己安装)2. 直接下载安装pycharm安装包(用于编写pytho ...

  8. 【Ansible 文档】【译文】主机清单文件

    Inventory 主机清单文件 Ansible 可以对你的基础设施中多个主机系统同时进行操作.通过选择在Ansible的inventory列出的一部分主机来实现.inventory默认保存在/etc ...

  9. [工具]StarUML

    前些日子整理文档,需要补充程序结构流程图,一直没有想到怎么样能够清晰直观描述清楚现在的解决方法,直到我知道了 UML 语言.最早对于 UML 的了解也只是停留在一本书上,他们开发使用 UML 分解任务 ...

  10. 怎样自适应ios设备大小

       在编写移动端GIS程序的时候.常常要依据ios设备的大小来设置UI.曾经我在ios程序中,须要定义设备的值(如:宽度和高度),如: 可是假设是不同的设备.如iphone4.iphone5,甚至是 ...