繁体   English   中英

在不同平台上使用 Web 服务的分布式事务

[英]Distributed transaction using web services on different platforms

是否可以使用以不同技术实现的 Web 服务来实现事务性?

例如:让我们想象一下我们想要提供 2 个不同组织的集成服务的情况,每个组织都已经使用不同的技术在不同的国家实施了不同的系统。 组织 A 有一个 Java 服务器公开 Rest 服务,允许消费者在表中插入数据,然后组织 B 有一个 .Net 服务器公开 Rest 服务,也允许消费者在表中插入数据。 然后我想创建一个新的服务器来将这两个服务集成到一个,允许消费者插入两个组织的数据库。 因此,我必须从这个新服务器以事务方式调用这两个剩余服务(这意味着两个组织都将插入,或者如果出现故障则不会插入,它将回滚)。

即使服务器 1 和服务器 2 使用不同的技术实现,也有可能实现吗? 如果有 n 个服务器都以不同的技术实现并且都公开 Rest 服务怎么办?

在微服务架构的情况下,不可能有真正的交易。 您必须实施补偿,以在发生故障时回滚更改。 有关其中一种方法,请参阅Saga 模式

查看Cadence Workflow ,它使 Sagas 的实施变得微不足道。 这是一个例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM