SOA 和分布式事务

标签 soa distributed-transactions

什么时候分布式事务在面向服务的架构中有意义?

最佳答案

分布式事务在 SOA 环境中经常使用。如果您有一个调用多个服务的复合服务,则底层服务调用应作为单个事务处理。业务流程应允许其步骤回滚。如果底层资源允许,您可以使用两阶段提交,但在许多情况下这是不可能的。在这些情况下,应对在失败步骤之前调用的服务/资源执行补偿操作。换句话说,以相反的顺序撤消成功的步骤。
假想示例:电信公司为具有 6 个服务调用的客户提供了一种新的 VoIP 产品:

  • 查询库存检查客户是否有合适的设备
  • 通过中介配置客户设备
  • 使用新配置更新 list
  • 设置评级引擎以计算客户的 CDR
  • 设置计费软件以向客​​户收取正确的价格计划
  • 使用配置过程的结果更新 CRM 系统

  • 上述 6 个步骤应该是一笔交易的一部分。例如。如果库存更新失败,您(可能)需要撤消客户设备配置。

    关于SOA 和分布式事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2560243/

    相关文章:

    java - Spring Roo - 未找到命令 'service'

    java - SOA 中的 Orchestration 和 Choregraphie 是已弃用的架构吗?

    java - 处理 Apache ServiceComb 补偿方法中的附加数据

    c# - 是否可以使用 WCF 实现长时间运行的多次写入事务?

    php - SOA 和 Web 应用程序

    architecture - 简单应用的复杂架构

    java - 为什么将微服务分布式事务模式命名为 SAGA?

    java - JMS 本地事务与 TransactionManager

    Azure 无法将事务编码到弹性事务的传播 token 中(适用于 MSDTC)

    wcf - Entity Framework : Change tracking in SOA with POCO approach