是否有可能在来自不同平台(如 .NET 或 Java)的不同 SOA 服务之间传播事务?
我知道事务可以在来自 .NET 的 WCF 服务之间流入和流出。但是我对Java平台不熟悉。
现在我正在一个项目中工作,该项目从不同平台传达服务。
如何保持业务的一致性?
是否有可能在来自不同平台(如 .NET 或 Java)的不同 SOA 服务之间传播事务?
我知道事务可以在来自 .NET 的 WCF 服务之间流入和流出。但是我对Java平台不熟悉。
现在我正在一个项目中工作,该项目从不同平台传达服务。
如何保持业务的一致性?
如果您的客户端和服务器 SOA 基础架构(以及通过扩展,在各种服务实现中访问的底层后端系统)支持 WS-Transaction,那么这将允许事务传播。
然而,我在一个庞大的金融服务 SOA 中间件环境中工作,我们选择自己管理事务:使用手动补偿。虽然更复杂,但不依赖任何分布式事务协调器确实给了我们灵活性和性能提升。
服务之间的事务对您的 SOA 不利,因为它们会在服务之间引入大量耦合。服务边界是信任边界。正如丹尼尔所说,你最好使用Sagas和补偿