【问题标题】:Transaction in SOASOA 中的事务
【发布时间】:2012-07-25 04:23:25
【问题描述】:

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

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

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

如何保持业务的一致性?

【问题讨论】:

标签: java .net transactions soa


【解决方案1】:

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

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

【讨论】:

  • 在我个人看来,手动使用补偿编码。有时它对于一致性来说不够可靠。但实际上我们是这样做设计的。谢谢
【解决方案2】:

Transactions between services are bad for your SOA 因为它们在服务之间引入了很多耦合。服务边界是信任边界。正如丹尼尔所说,你最好使用Sagas 和补偿

【讨论】:

  • 太棒了。谢谢。我需要时间阅读它。这对我来说有点难以理解。
【解决方案3】:

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

它与传奇和补偿方法有关,并结合了所有世界的精华。

最好的

【讨论】:

    猜你喜欢
    • 2012-04-28
    • 2011-02-03
    • 2011-05-08
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多