在分布式消息事务的世界中,我试图了解开发分布式系统所涉及的不同部分。据我所知,您可以使用支持消息队列系统的企业总线来设计消息系统。为什么同时使用这两者是个好主意呢?是否只编写针对消息队列系统的程序也可以实现相同的功能呢?使用两者的优点是什么?
您当然可以直接编写针对消息基础结构的代码,但是您会发现每种传输方式都有其优缺点。您需要沿途做出许多决策,这就是服务总线可能会有所帮助的地方。
直接开发队列系统将不可避免地导致您需要抽象出各种内容以防止重复。
服务总线将提供以下意见/实现:
某些服务总线实现提供了实现进程管理器(大多数人称之为saga)的框架。 我目前的看法是,一个进程管理器需要像任何其他实体一样成为一等公民,但这可能会改变:)
总之,如果您仍在评估选项,您也可以查看我的FOSS项目: http://shuttle.github.io/shuttle-esb/
因此,服务总线可能会为您带来很多开箱即用的功能,而直接针对队列进行编码可能需要做一些工作才能上手。
我只是尝试过MassTransit,无法直接评论它。
我使用NServiceBus,并且很喜欢它。我认为直接使用排队技术有其有效的理由,但我认为使用MSMQ/RabbitMQ来制作自己的ESB成本比使用商业产品(或开源产品,如MassTransit)要高得多。
所以你需要它吗?不需要。如果功能符合您的要求,它是否会使您的生活变得更轻松?绝对会。