介绍

:::tips SAGA模式是Seata即将开源的长事务解决方案,由蚂蚁金服主要贡献,其理论基础是Hector&Kenneth在1987年发表的论文Sagas

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

分布式事务执行过程中,依次执行各参与者的正向操作,如果所有正向操作均执行成功,那么分布式事务提交;如果任何一个正向操作执行失败,那么分布式事务会去退回去执行前面各参与者的逆向回滚操作,回滚已提交的参与者,使分布式事务回到初始状态
image.png

Saga也分为两个阶段:

  • 一阶段:直接提交本地事务
  • 二阶段:成功则什么都不做;失败则通过编写补偿业务来回滚 :::

    优缺点

    :::tips SAGA模式的优点

  • 事务参与者可以基于事件驱动实现异步调用,吞吐高

  • 一阶段直接提交事务,无锁,性能好
  • 不用编写TCC中的三个阶段,实现简单

SAGA模式的缺点

  • 软状态持续时间不确定,时效性差
  • 没有锁,没有事务隔离,会有脏写 :::