spring微服务之seata的介绍与使用

目录

1.At模式

2.TCC模式

3.SAGA

4.XA模式


        

        Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案

1.At模式

实现原理:
        阿里 SEATA独有模式,通过生成反向SQL实现数据回滚,需要在数据库额外附加UNDO_LOG表。

特点:
性能:高
模式:AP,存在数据不一致的中间状态
难易程度:简单,靠SEATA自己解析反向SQL并回滚
使用要求:
        所有服务与数据库必须要自己拥有管理权,因为要创建UNDO_LOG表。
        最好都是MysQL,听说也支持PSQL,不过没试验过。
应用场景:
        高并发互联网应用,允许数据出现短时不一致,可通过对账程序或补录来保证最终一致性。


2.TCC模式


        TCC是Try-尝试、Confirm-确认、Cancel-取消Try 尝试阶段,对资源进行锁定。
        Conirm 确认阶段,对资源进行确认,完成操作Cancel 取消阶段,对资源进行还原,取消操作。

实现原理:

        在代码中和数据库中添加字段,实现对资源的锁定。

 confirm

模式:AP,存在数据不一致的中间状态
难易程度:复杂,SEATA TC只负责全局事务的提交与回滚指令,具体的回滚处理全靠程序员自己实现
使用要求:
    1. 所有服务与数据库必须要自己拥有管理杈
    2. 支持异构数据库,可以使用不同选型实现
    3. 高并发石联网应用,介许数据出现短时不一致,可通讨对账程序或补录来保近最终一致性


3.SAGA

        Saga模式是SEATA提供的长事务解决方案,在Saga模式中,业务流程中每个参与者都提交本地事务,当出现某一个参与者失败则补偿前面已经成功的参与者,一阶段正向服务和二阶段补偿服务都由业务开发实现。形成事件反向链类似于状态机,事件的反向事件需要自己设计完成。

特点
性能:不一定,取决于三方服务
模式:AP,在数据不一致的中间状态
难易程度:复杂,提交与回滚流程全靠程序员编排


4.XA模式

        每个数据库交给统一管理,数据库完成后阻塞但不提交,等所有完成后一起提交;

特点
性能:低,

模式:CP,能保证一致性,
难易程度:简单,基于数据库自带特性实现,全程只有唯一的线程可以进行操作,无需改表
使用要求:
    使用支持XA方案的关系型数据库(主流都支持)
应用场景:
    金融行业,并发量不大,但数据很重要的项目

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值