微服务中的分布式事务

Rag*_*van 5 distributed-transactions saga microservices

我有2个微服务S1S2S1调用S2先更新一个数据,然后S1插入另一个数据,但是让我们考虑S1失败,然后我们需要回滚更新的数据,S2否则我们将处于不一致状态。

我也经历了Saga模式。它将满足这种不一致的情况

有人可以为此提出任何更好的解决方案吗?

Kai*_*dul 2

我认为 Saga 模式(编排)使应用程序能够在多个服务之间维护数据一致性,而无需使用分布式事务。

该解决方案有以下缺点:

编程模型更加复杂。例如,开发人员必须设计补偿事务,以显式撤消传奇中之前所做的更改。

还有以下问题需要解决:

为了可靠,服务必须自动更新其数据库并发布事件。它无法使用跨数据库和消息代理的分布式事务的传统机制。