分布式事务何时在面向服务的体系结构中有意义?SOA和分布式事务
5
A
回答
2
分布式事务在SOA环境中经常使用。如果您有一个组合服务调用多个服务,则应将底层服务调用作为单个事务处理。业务流程应该允许他们的步骤回滚。如果底层资源允许,您可以使用两阶段提交,但在很多情况下这是不可能的。在这些情况下,补偿操作应该在失败步骤之前调用的服务/资源上完成。换句话说,以相反的顺序撤销成功的步骤。
虚例如:电信公司规定与6个服务客户一个新的VoIP产品来电:
- 查询库存查询客户有合适的设备
- 配置客户设备通过中介
- 更新库存与新配置
- 设置等级引擎来为客户计数CDR's
- 设置计费软件以向客户收取正确的价格计划
- 更新CRM系统与配置过程的结果
以上6个步骤应该是一个事务的部分。例如。如果清单更新失败,您(可能)需要撤消客户设备配置。
1
当它们有意义时,不是真的。交易(无论是否分发)是为了保证一致性,而不是随意选择而实施。另一种方法是实施一个核对流程,以确保最终的一致性。
在典型的银行示例中(账户A的资金不计入账户B),事务一致性非常重要。在一些库存系统中(检查库存,减少库存,向顾客出售),库存水平大致准确可能是可以接受的,而不是保证。在这种情况下,忽略失败(减少库存,销售未能完成)可以通过稍后协调来处理。
相关问题
- 1. SSIS Oracle和分布式事务
- 2. TransactionScope与MySQL和分布式事务
- 3. SOA中的事务
- 4. SOA中的事务管理
- 5. 与ActiveRecord的分布式事务边界
- 6. Spring MVC - 分布式数据库事务
- 7. .NET检测分布式事务
- 8. ADO.NET 2.0之前的分布式事务
- 9. 什么是“分布式事务”?
- 10. 用于分布式事务的SOAP
- 11. SQL Server 2005中的分布式事务
- 12. XA分布式事务处理C++
- 13. TransactionScope:避免分布式事务
- 14. 分布式事务处理协调器
- 15. SQL Server和Oracle之间的分布式事务
- 16. MySQL和MSSQL之间的分布式事务
- 17. Microsoft分布式事务处理协调器(MS DTC)已取消分布式事务
- 18. 包含服务的Webstack布局(SOA)
- 19. SOA和WCF数据服务
- 20. 分布式性质任务和阿卡
- 21. WCF分布式事务在几个服务器和一个数据库上
- 22. 分布式和分散式服务之间有什么区别?
- 23. 设置Berkeley DB Java版中分布式事务(XA)的事务隔离级别
- 24. 分布式窗口服务
- 25. 分布式Web服务?
- 26. DC/OS - 分布式服务
- 27. SOA服务中的聚合模式
- 28. SOA服务测试
- 29. SOA/Web Service分页
- 30. SOA如何实现高可用性,服务升级和ACID事务?
本文指出SOA和分布式事务是一种反模式 - http://arnon.me/2010/09/soa-antipattern-transactional-integration/。它的底部有一个“已知例外”部分,其中谈到了“封闭系统”,但随后表明这可能是一个坏主意。 – Bermo 2010-10-08 09:29:28