分布式事务

分布式事务通常采用数据库层面的全局锁或业务接口的中间状态来确保一致性。Seata作为一站式分布式事务解决方案,使用一阶段提交并记录undo日志,确保高可用。常见的事务模式包括XA、AT、TCC、Saga等,它们各有特点,适用于不同的场景。Seata的TC组件负责事务协调,确保事务的提交或回滚。补偿机制如日志回滚用于处理网络异常导致的分支丢失问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分布式事务

个人理解: 分布式事务一般有两种方案解决,一个是在数据库层面,锁住全局事务;一起提交一起回滚,就是AT模式

一种是业务层面的,提供业务接口,单据有一个中间状态接口,一起提交,一起回滚也是业务接口;

对于事务中可能出现网络终端导致某一条分支丢失的情况,我们可以用日志的形式进行补偿等;

Seata也是采取每个微服务的一阶段提交拿到全局锁,但是回滚是通过日志回滚;

  1. 事务的模式: XA、AT、TCC、Saga、本地消息表、MQ消息事务、最大努力通知
    1. XA
      1. 。XA 的全称是eXtended Architecture,它是一个分布式事务协议,它通过二阶段提交协议保证强一致性
      2. 基于XA协议实现的分布式事务是强一致性的分布式事务,典型应用场景如JAVA中有关分布式事务的规范如JTA(Java Transaction API)和JTS(Java Transaction Service)中就涉及到了XA
    2. AT、(automic transaction) 基于xa演化而来(针对关系型数据库,redis是不支持的)
      1. AP(Application Program,应用程序)
      2. RM(Resource Manager,资源管理器)
      3. TM(Transaction Manager,事务管理器):TM能与AP和RM直接通信,协调AP和RM来实现分布式事务的完整性。负责管理全局事务,分配全局事务标识,监控事务的执行进度,并负责事务的提交、回滚、失败恢复等。
    3. TCC、(try commit cancel)(对数据库类型没有要求,因为是业务的)
    4. Saga、()
      1. Saga模式是SEATA提供的长事务解决方案,在Saga模式中,业务流程中每个参与者都提交本地事务,当出现某一个参与者失败则补偿前面已经成功的参与者,一阶段正向服务和二阶段补偿服务都由业务开发实现。
    5. 本地消息表、
    6. MQ消息事务、
    7. 最大努力通知
  2. 这些模式的实现
    1. Seata(Simple Extensible Autonomous Transaction Architecture,一站式分布式事务解决方案)对业务无侵入
      1. Transaction Coordinator(TC)
      2. 一阶段提交事务,同事提交undo日志
      3. 二阶段提交成功则删掉undo日志,回滚则执行undo日志。他这个这个undo日志是根据修改前的数据生成的
      4. Tc独立于业务系统存在就是为了可以高可用;集群部署
    2. 其他

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值