使用ActiveMQ对NServiceBus进行分布式事务支持?

时间:2014-02-14 17:01:09

标签: nservicebus nms

我们正在考虑使用ActiveMQ作为消息传输,使用NServiceBus而不是MSMQ,以使Java端点能够通过ActiveMQ直接与.NET端点集成。

默认情况下,NServiceBus端点在涉及MSMQ和SQL Server的分布式事务中运行。当消息传输是ActiveMQ时,NServiceBus中的分布式事务是否具有相同级别的支持?与MSMQ相比,使用ActiveMQ与NServiceBus有任何其他缺点吗?

2 个答案:

答案 0 :(得分:1)

来自David Boike的书Learning NServiceBus

  

与MSMQ一样,ActiveMQ支持DTC,确保我们的消息处理程序保持完全事务性。

就缺点而言:

答案 1 :(得分:1)

我们实际上已经发现了ActiveMQ的.net客户端的问题 - 它不能很好地支持分布式事务。虽然我们已经尝试与那些提交者合作,但我们仍然无法完全解决这个问题。

此时,如果您想在.net上使用ActiveMQ(使用或不使用NServiceBus),您必须负责重复删除流经系统的所有消息。

我们正在努力在NServiceBus中构建这种基础架构级重复数据删除逻辑,以便不支持分布式事务的RabbitMQ和Azure Service Bus等队列提供与MSMQ相同的行为。