SOA和分布式事务

Ber*_*rmo 5 soa distributed-transactions

分布式事务何时在面向服务的体系结构中有意义?

Mik*_*uka 2

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

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

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