Answers:
我建议您不要采用手动解决方案,因为需要正确解决一堆有些困难的事情,例如如何处理事务,异常如何导致回滚,如何不断停止回滚(有毒消息),如何与长期运行的工作流集成在一起,以便使状态管理边界对齐等等。
您可能会需要某种持久的/事务性消息传递基础结构,因此,如果不使用MSMQ,您将只能在Microsoft平台上使用Service Broker或ActiveMQ之类的其他替代方法。MSMQ的优点是已经在所有Windows机器上安装了该服务,而Service Pack则没有。
在NServiceBus,Mass Transit和Rhino Service Bus之间进行选择时-这个Stackoverflow答案比较NServiceBus和MassTransit将是一个不错的起点。
在我们的3.1版本中,我们引入了NSB Studio-一组Visual Studio集成的建模工具,使您可以在更高的抽象级别上对系统进行建模,并自动为您完成NServiceBus的许多配置和初始化。我要说的是,这确实使扩展规模有利于NServiceBus。
希望能有所帮助。
免责声明:我是NServiceBus的作者。
NServiceBus是一个很好的产品,但是要注意许可问题。正如作者希望的那样,它倾向于更改其许可政策。以旧许可证信息为例。
在项目开发过程中,您可能会发现必须为NServiceBus付出很多钱。
免费版也有性能限制。
MassTransit是绝对免费的开源软件,没有任何限制,并且已获得Apache 2.0许可。
我没有使用Rhino服务总线。
Rhino vs NServicebus状态的更新:
http://www.infoq.com/news/2012/04/nservicebus3-0
InfoQ to Ayende: 您之前已经为.NET编写了服务总线,即Rhino服务总线。Rhino Service Bus的用户现在应该重新考虑并迁移到NServiceBus吗?
Ayende:我在2008年左右制造了Rhino Service Bus。之所以制造它,主要是因为我对当时其他服务总线的状态不满意。构建服务总线时,我有不同的担忧和方向,但这是4年前。在那段时间里,我认为NServiceBus在成为易于使用的产品和更好的开箱即用开发故事方面取得了长足的进步。如果我今天开始使用服务巴士,我强烈怀疑自己会自己建造。
基于MSMQ的任何潜在缺点都是对最大邮件大小的限制。IIRC大约为4MB,如果您要处理大文件并将文件内容存储在消息中,则可能会很容易碰到。