介绍
:::tips SAGA模式是Seata即将开源的长事务解决方案,由蚂蚁金服主要贡献,其理论基础是Hector&Kenneth在1987年发表的论文Sagas
在SAGA模式下,分布式事务内有多个参与者,每一个参与者都是一个冲正补偿服务,需要用户根据业务场景实现其正向操作和逆向回滚操作
分布式事务执行过程中,依次执行各参与者的正向操作,如果所有正向操作均执行成功,那么分布式事务提交;如果任何一个正向操作执行失败,那么分布式事务会去退回去执行前面各参与者的逆向回滚操作,回滚已提交的参与者,使分布式事务回到初始状态
Saga也分为两个阶段:
- 一阶段:直接提交本地事务
二阶段:成功则什么都不做;失败则通过编写补偿业务来回滚 :::
优缺点
:::tips SAGA模式的优点
事务参与者可以基于事件驱动实现异步调用,吞吐高
- 一阶段直接提交事务,无锁,性能好
- 不用编写TCC中的三个阶段,实现简单
SAGA模式的缺点
- 软状态持续时间不确定,时效性差
- 没有锁,没有事务隔离,会有脏写 :::