Seata Saga 模式详解
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模式可能会导致事务执行时间过长,从而影响系统的性能。
还没有评论,来说两句吧...