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