Msmq N服务巴士vs公共交通vs Rhino服务巴士vs其他?

Msmq N服务巴士vs公共交通vs Rhino服务巴士vs其他?,msmq,nservicebus,servicebus,masstransit,rhino-esb,Msmq,Nservicebus,Servicebus,Masstransit,Rhino Esb,只是做一些快速的尝试,可能使用消息传递系统来处理在一个良好解耦的工作流系统中的文件 人们发现使用上述每种框架有哪些优点和缺点?与带有WCF绑定和/或非MSMQ解决方案的手动滚动MSMQ系统相比,使用这些系统有哪些优点???任何基于MSMQ的解决方案的潜在缺点都是对最大消息大小的限制。IIRC大约为4MB,如果您处理大型文件并将文件内容存储在消息中,您可能会很容易遇到它。我建议不要使用手动解决方案,因为有一大堆有些困难的东西需要正确处理,比如如何处理事务,异常如何导致回滚,如何停止无休止的回滚(有

只是做一些快速的尝试,可能使用消息传递系统来处理在一个良好解耦的工作流系统中的文件


人们发现使用上述每种框架有哪些优点和缺点?与带有WCF绑定和/或非MSMQ解决方案的手动滚动MSMQ系统相比,使用这些系统有哪些优点???

任何基于MSMQ的解决方案的潜在缺点都是对最大消息大小的限制。IIRC大约为4MB,如果您处理大型文件并将文件内容存储在消息中,您可能会很容易遇到它。

我建议不要使用手动解决方案,因为有一大堆有些困难的东西需要正确处理,比如如何处理事务,异常如何导致回滚,如何停止无休止的回滚(有害消息),如何与长期运行的工作流集成,以便状态管理边界对齐,等等

您可能需要某种持久/事务性的消息传递基础结构,因此不使用MSMQ,您将只能使用Microsoft平台上的Service Broker或其他替代方案,如ActiveMQ。MSMQ的优点是已经安装在所有Windows计算机上,而Service Broker没有安装MSMQ

在N服务巴士、公共交通和Rhino服务巴士之间进行选择时,这个答案将是一个很好的起点

在我们的3.1版本中,我们将引入NSB Studio—一组Visual Studio集成建模工具,使您能够在更高的抽象级别上对系统进行建模,并自动完成NServiceBus的大部分配置和初始化。我要说的是,这确实使天平向有利于NServiceBus的方向倾斜

希望有帮助


免责声明:我是NServiceBus的作者。

NServiceBus是一个好产品,但请注意许可问题。它倾向于按照作者的意愿改变It许可政策。例如,请看

可能会发生在你开发项目的中间,你会发现你必须支付很多钱给NService总线。 免费版本也有性能限制

MassTransit是绝对免费的开源软件,它没有任何限制,并且在Apache 2.0许可证下


我没有使用Rhino服务总线更新Rhino与NServicebus的状态:

InfoQ to Ayende:您以前为.NET编写过服务总线 你自己,即Rhino服务巴士。Rhino服务的用户是否应该 巴士现在重新考虑,并转向NServiceBus

Ayende:我在2008年左右建造了Rhino服务巴士。主要是我造的 因为我对其他服务巴士的状况不满意 时间。在建立我的团队时,我有不同的关注点和方向 服务巴士,但那是4年前的事了。在那个时候,我认为 NServiceBus在成为更易于使用的产品方面取得了巨大的进步 还有一个更好的开箱即用的开发故事。如果我是 从今天的服务巴士开始,我强烈怀疑我是否会 我正在建造我自己的


有趣的是,大多数基于云的队列甚至不支持100KB的有效负载,因此这是未来许多应用程序需要考虑的问题。在企业集成模式(Woolf、Hohpe)中,索赔检查模式专门解决了这一问题。对大有效负载的引用仅保留在消息中,从而使消息保持较小。较大的消息大小会对消息传递系统的吞吐量造成严重破坏。这不是NServiceBus的问题,因为他们有一个数据总线的概念,它透明地围绕大小限制工作。Rhino Service Bus非常以城堡为中心。如果您不熟悉/不熟悉Castle作为应用程序体系结构的核心部分,您可能会遇到一些困难。N公共巴士和公共交通或更多集装箱不可知。NServiceBus附带了一个“应用程序服务器”,当您将系统从开发转换为测试转换为产品时,它可以处理托管代码以及更改活动基础结构实现(如内存、MSMQ和DB)。它还为您的消息处理逻辑和长时间运行的流程提供了单元测试功能。我不相信MassTransit有这些。可能值得注意的是,Udi是NServiceBus的作者,因此他的观点在这里可能有点偏颇。:)话虽如此,我完全同意,并主张使用NServiceBus,理由与他所做的相同。@skb:同意!Udi,在回答nservicebus的问题时,你真的应该给出一些免责声明,尤其是像这样的问题!我仍然习惯于这样一个事实:人们现在发现了NServiceBus,但他们并不知道我创建了NServiceBusit@UdiDahan:nServiceBus如何“开源”?在没有使用许可证的情况下发布源代码对开放源代码(即共享)的精神毫无帮助。我完全支持你以销售软件为生的权利(我也这么做),但我认为如果你不把解决方案(2.0版后)吹捧为开源,那就更准确了。实际上,我们将提供一个3.1版的新许可证,允许你在多台机器上免费运行它(尽管吞吐量较低)Mass Transit是你的人。它是免费的;没有许可证限制。如果你没有流量设计师也能做到,并且可以自己动手,那么你就无法打败它。它也可以位于RabbitMQ之上,MSMQ拥有社区Azure插件。MasTrANIT+RabBMQ已经证明它本身是一个非常稳定的环境,很快就可以让你的消费者/生产者运行起来。也考虑EasyNETQ(简单的包装在RabByMQ附近)。UDDI在与4个好的选择2 NService总线的讨论中没有更多的权重。我的意思是。帮助