【问题标题】:does MassTransit support distributed transactions?MassTransit 是否支持分布式事务?
【发布时间】:2016-04-02 05:56:36
【问题描述】:

我已经阅读了 Udi 的文章Life without distributed transactions

MassTransit 是否支持分布式事务? (为了避免在MassTransit上出现重复问题,不要手动检查代码)

【问题讨论】:

    标签: .net transactionscope servicebus masstransit


    【解决方案1】:

    MassTransit 有一个名为 Courier 的功能,它使用执行/补偿式路由单方法实现分布式事务。您可以在 GitHub 上查看代码示例:https://github.com/MassTransit/Sample-Booking

    传送单将事务分解为一组按原子顺序执行的活动,并在传送单中记录补偿信息。如果某个活动出现故障,则会对先前完成的活动进行补偿,从而不会让部分事务处于打开状态。

    这是进行分布式事务的基础,并且已在当今生产中的多个大型分布式事务处理应用程序中使用。

    Courier 用法的另一个好例子:https://github.com/phatboyg/Demo-Registration

    【讨论】:

      【解决方案2】:

      添加了文档以演示如何使用 MT3 完成此操作:

      Managing transactions in MT

      但是您仍然需要在生产中进行监控,以了解在数据库故障和 RabbitMQ 代理断开/重新连接以确保行为符合预期时会发生什么。

      或者,也许您也可以查看Using Sagas in MT,它旨在管理分布式事务的复杂性,而无需锁定和即时一致性。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多