分佈式事務何時在面向服務的體系結構中有意義?SOA和分佈式事務
5
A
回答
2
分佈式事務在SOA環境中經常使用。如果您有一個組合服務調用多個服務,則應將底層服務調用作爲單個事務處理。業務流程應該允許他們的步驟回滾。如果底層資源允許,您可以使用兩階段提交,但在很多情況下這是不可能的。在這些情況下,補償操作應該在失敗步驟之前調用的服務/資源上完成。換句話說,以相反的順序撤銷成功的步驟。
虛例如:電信公司規定與6個服務客戶一個新的VoIP產品來電:
- 查詢庫存查詢客戶有合適的設備
- 配置客戶設備通過中介
- 更新庫存與新配置
- 設置等級引擎來爲客戶計數CDR's
- 設置計費軟件以向客戶收取正確的價格計劃
- 更新CRM系統與配置過程的結果
以上6個步驟應該是一個事務的部分。例如。如果清單更新失敗,您(可能)需要撤消客戶設備配置。
1
當它們有意義時,不是真的。交易(無論是否分發)是爲了保證一致性,而不是隨意選擇而實施。另一種方法是實施一個核對流程,以確保最終的一致性。
在典型的銀行示例中(賬戶A的資金不計入賬戶B),事務一致性非常重要。在一些庫存系統中(檢查庫存,減少庫存,向顧客出售),庫存水平大致準確可能是可以接受的,而不是保證。在這種情況下,忽略失敗(減少庫存,銷售未能完成)可以通過稍後協調來處理。
相關問題
- 1. SSIS Oracle和分佈式事務
- 2. TransactionScope與MySQL和分佈式事務
- 3. SSIS DB2和分佈式事務
- 4. SOA中的事務
- 5. JMS - 分佈式事務
- 6. 分佈式事務是否
- 7. 分佈式SOA構建與設計
- 8. SOA中的事務管理
- 9. mysql上的分佈式事務
- 10. 什麼是「分佈式事務」?
- 11. ADO.NET 2.0之前的分佈式事務
- 12. 分佈式事務相同的連接
- 13. 分佈式數據庫事務
- 14. SQL Server 2005中的分佈式事務
- 15. 分佈式事務及其實現
- 16. 與ActiveRecord的分佈式事務邊界
- 17. Spring MVC - 分佈式數據庫事務
- 18. 用於分佈式事務的SOAP
- 19. 分佈式事務處理協調器
- 20. TransactionScope:避免分佈式事務
- 21. XA分佈式事務處理C++
- 22. .NET檢測分佈式事務
- 23. MSSQL合併分佈式事務替代
- 24. SOA和Web服務和ESB
- 25. wcf分佈式事務的事務協調器
- 26. Java EE中的事務或分佈式事務
- 27. SQL Server和Oracle之間的分佈式事務
- 28. 分佈式事務和隊列,ruby,erlang,scala
- 29. MySQL和MSSQL之間的分佈式事務
- 30. 分佈式事務SQL Server <-> MySql。例外:MySQL Connector/Net目前不支持分佈式事務
本文指出SOA和分佈式事務是一種反模式 - http://arnon.me/2010/09/soa-antipattern-transactional-integration/。它的底部有一個「已知例外」部分,其中談到了「封閉系統」,但隨後表明這可能是一個壞主意。 – Bermo 2010-10-08 09:29:28