Seata作用
Seata在SpringBoot Alibaba中的作用是实现分布式事务的组件,支持许多组件配置,使用简单便捷。
Seata如何实现分布式事务
默认Seata采取AT模式,使用二阶段提交方法。
一阶段
获取本地锁,开启本地事务,完成本地事务但未提交,写入UNDO_LOG表中,提交到TC(事务协调者)中,释放本地锁和连接资源。
二阶段
获取全局锁,提交本地事务,异步完成全局事务。
如果获取失败则进行回滚,根据UNDO_LOG表中的内容回滚本地事务。
Saga模式
Saga模式适用于业务流程长,时间久的业务情况,具体实现为将多次本地事务提交,如果某个参与者事务提交失败需要回滚,则对之前的多个参与者进行补偿操作。缺点在于没有隔离性,优点是效率高,补偿操作简单。