SOA中的事务

时间:2012-07-26 14:37:16

标签: java .net transactions soa

是否有可能在来自.NET或Java等不同平台的不同SOA服务之间传播事务?

我知道事务可以在来自.NET的WCF服务之间流入和流出。但我不熟悉Java平台。

现在我正在一个项目中工作,该项目传达来自不同平台的服务。

如何保持业务的一致性?

3 个答案:

答案 0 :(得分:1)

如果您的客户端和服务器SOA基础结构(以及通过扩展,在各种服务实现中访问的基础后端系统)支持WS-Transaction,那么这将允许事务传播。

但是,我在一个庞大的金融服务SOA中间件环境中工作,我们选择自己管理事务:使用手动补偿。虽然更复杂,但不依赖于任何分布式事务协调器确实为我们提供了灵活性和性能提升。

答案 1 :(得分:1)

Transactions between services are bad for your SOA因为它们在服务之间引入了很多耦合。服务边界是信任边界。你最好使用Sagas和补偿,就像丹尼尔指出的那样

答案 2 :(得分:0)

尝试这种模式:http://www.atomikos.com/Publications/TryCancelConfirm

它与传奇和补偿方法有关,并且结合了所有世界中最好的。

最佳