跳到主要内容

解释什么是Seata四大模式 ?

参考答案:

Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。Seata提供了四种分布式事务模式,分别是XA、AT(默认)、TCC和Saga。

XA模式是一种强一致性的两阶段提交协议,需要数据库支持XA接口。这种模式下,牺牲了一定的可用性,但无业务侵入。

AT模式是Seata的默认模式,也是最终一致性的两阶段提交协议。它通过自动补偿机制实现数据回滚,无业务侵入。在提交事务前,AT模式会记录undo log日志,性能比XA模式好。如果在二阶段TC通知回滚,那么就会根据undo log进行回滚;如果通知提交,那么就会删除undo log日志。

TCC模式性能最好,不需要依赖关系型数据库,但代码入侵度较高。它包含三个阶段:Try、Confirm和Cancel。Try阶段会冻结可用数据,Confirm阶段会确认提交数据并删除冻结数据,而Cancel阶段则会恢复数据,将冻结数据恢复。

Saga模式主要用于长事务,例如A项目调用另外一个公司的项目接口。如果要保证可用性,那么分区的机器可能会出现数据不一致的情况,即AP。

总的来说,这四种模式各有特点,可以根据具体的应用场景和需求来选择合适的模式。