Seata Saga 模式详解

水深无声 2023-10-10 21:59 169阅读 0赞

Saga介绍

Saga是一种补偿协议,在Saga模式下,分布式事务内有多个参与者,每一个参与者都是一个冲正补偿服务,需要用户根据业务场景实现其正向操作和逆向回滚操作。Saga模型是把一个分布式事务拆分为多个本地事务,每个本地事务都有相应的执行模块和补偿模块(对应TCC中的Confirm和Cancel),当Saga事务中任意一个本地事务出错时,可以通过调用相关的补偿方法恢复之前的事务,达到事务最终一致性。

Seata Saga 模式详解

Saga模式是Seata提供的长事务解决方案,在Saga模式中,业务流程中每个参与者都提交本地事务,当出现某一个参与者失败则补偿前面已经成功的参与者,一阶段正向服务和二阶段补偿服务都由业务开发实现。

saga和tcc的区别

TCC和Saga都是分布式事务解决方案,但是它们的实现方式不同。TCC模式是将一个分布式事务拆分成多个本地事务,每个本地事务都有对应的执行模块和补偿模块(对应TCC的confirm和cancel),当任何一个事务失败时,可以通过调用补偿模块来进行恢复,达到事务最终一致性。

而Saga模式是将一个分布式事务拆分成多个本地事务,每个本地事务都有对应的执行模块和补偿模块(对应Saga的正向服务和补偿服务),当某个参与者出现失败,则补偿前面已经成功的参与者,一阶段正向服务和二阶段补偿服务都由业务开发实现。

saga模式的优点和缺点是什么?

以下是saga模式的优点和缺点:

优点:

  • Saga模式非常适合用来处理时间跨度比较长的分布式事务问题。
  • 对于分布式事务参与方的完成时效性没有要求。
  • Saga模式可以在不同的阶段进行补偿操作,从而保证了数据的最终一致性。
  • Saga模式可以通过异步消息来实现,从而提高了系统的可扩展性。

缺点:

  • Saga模式需要开发人员自己实现补偿操作,这增加了开发难度。
  • Saga模式需要开发人员自己实现事务状态机,这增加了开发难度。
  • Saga模式可能会导致事务执行时间过长,从而影响系统的性能。

发表评论

表情:
评论列表 (有 0 条评论,169人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Seata Saga 模式详解

    Saga介绍 Saga是一种补偿协议,在Saga模式下,分布式事务内有多个参与者,每一个参与者都是一个冲正补偿服务,需要用户根据业务场景实现其正向操作和逆向回滚操作。Sa