分布式事务:两阶段提交(2PC)/补偿事务(TCC)

本文深入探讨分布式事务,重点解析两阶段提交(2PC)和补偿事务(TCC)的工作原理。2PC存在同步阻塞、单点故障、数据不一致等问题,而TCC采取补偿机制,通过Try、Confirm、Cancel三个阶段确保事务一致性,虽然实现简单,但在某些场景下定义和处理较为复杂。
摘要由CSDN通过智能技术生成


分布式事务指事务的操作位于不同的节点上,需要保证事务的 ACID 特性。
    例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。

一、两阶段提交(2PC)
    两阶段提交(Two-phase Commit,2PC),
    通过引入协调者(Coordinator)来协调参与者的行为,
    并最终决定这些参与者是否要真正执行事务。
    
    1. 运行过程
        1.1 准备阶段
            协调者询问参与者事务是否执行成功,参与者发回事务执行结果。
        1.2 提交阶段
            如果事务在每个参与者上都执行成功,
            事务协调者发送通知让参与者提交事务;
            否则,协调者发送通知让参与者回滚事务。

            需要注意的是,在准备阶段,参与者执行了事务,但是还未提交。
            只有在提交阶段接收到协调者发来的通知后,才进行提交或者回滚。
    2. 存在的问题
        2.1 同步阻塞 
            所有事务参与者在等待其它参与者响应的时候都处于同步阻塞状态,
            无法进行其它操作。

        2.2 单点问题 
            协调者在2PC中起到非常大的作用,发生故障将会造成很大影响。
            特别是在阶段二发生故障,所有参与者会一直等待状态,无法完成其它操作。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值