分布式事务概述

本文探讨了在分布式系统中确保事务原子性的关键策略,包括两阶段提交(2PC)、补偿性事务(TCC)和使用消息队列(MQ)的实践。通过对比和总结,作者强调了公司选择TCC方案的原因,因其易于开发且能提供最终一致性。
摘要由CSDN通过智能技术生成

定义:在分布式系统上,保障不同服务的事务的原子性。即同时成功或失败
解决方案:
1、两阶段提交(Two-phase Commit,2PC)。

引入“第三方”,协调各事务参与者进行如下动作:首先大家分别走99步,成功了?ok,那大家再一起走最后一步。根据经验最后一步都能成功。

2、补偿性事务(try,cofirm,commit, TCC)

事务有三个参与者,ABC三个服务。A执行完B执行,B执行完C执行。如果C执行失败,则进行重试和补偿。如果重试后依旧失败,则调用B、A的回滚方法统一回滚

3、本地消息表

引入MQ第三方。ABC三个服务,A执行成功后记录在本地并生产消息给MQ,BC收到消息也进行事务执行。
1、2相比,此方案不可靠,没有回滚机制(或并没有详细说明),需要另外实现。相当于2方案的改进版。

4、MQ事务

相当于方案1的升级版,MQ进行2阶段协调提交。

总结:目前我司采用方案2,可保障最终一致性,开发复杂度低。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值