【分布式架构】分布式事务理论与实践

一、分布式事务理论

1. ACID理论

场景:单机架构中保证事务的理论

2. CAP理论

场景:分布式架构中保证事务的理论

概念

  • 一致性:数据在不同的节点每一时刻都是一致的
  • 可用性:一部分的节点出现异常,但是系统仍然可用
  • 分区容错性:俩个节点分别在俩个区,如果出现网络问题导致俩个分区通信失败,没办法保证一致性了

2.1 CAP中的分区容错性

在这里插入图片描述

如图所示,如果数据库1和数据库2通讯出现问题了,无法同时满足一致性和可用性,因此一般的系统只能保证CP或者AP

  • AP:大型系统采用的模式,承载大流量,高并发的同时,还可以满足高可用性,要保证数据的最终一致性
  • CP:金融等要保证数据实时一致性的系统,牺牲可用性带来的用户体验比较差

3. BASE理论

场景:在AP的基础上进一步牺牲一致性,允许数据在一段时间内不一致,但最终会达到一致状态,保证基本可用性和柔性状态‌(柔性事务)

概念:

  • 基本可用:某个节点挂掉不用影响用户的请求
  • 软状态:允许数据出现中间状态
  • 最终一致性:数据保证最终一致性

二、分布式事务解决方案-2pc

1. 概念

一阶段(准备阶段):协调者向参与者发送请求,询问是否可以提交事务
二阶段(提交阶段):如果参与者都返回yes,参与者提交事务,如果其中一个返回no,参与者回滚事务

2. 实践—SEATA

2.1 名词解释

  • TC: seata服务端,用来控制分支事务的提交或回滚
  • TM: 全局事务的发起者
  • RM: 管理分支事务
  • XID: 全局事务id

2.2 流程原理

在这里插入图片描述

  1. TM向TC发起全局事务,获取全局事务id
  2. 微服务链路中,RM注册到TC中
  3. 全局事务链路执行完成,TM根据有无异常向TC发起全局事务提交或回滚
  4. TC给RM发消息,通知分支事务的提交或回滚

2.3 SEATA模式(AT/TCC/SAGA/XA)

  1. XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入。

  2. TCC模式:最终一致的分阶段事务模式,有业务侵入。

  3. AT模式:最终一致的分阶段事务模式,无业务侵入,也是Seata的默认模式。

  4. SAGA模式:长事务模式,有业务侵入。

FAQ

  1. 分布式事务2pc的缺点
    ● 性能差
    ● 存在阻塞问题,由此引入3pc;3pc相当是在一阶段的准备阶段新加了询问阶段,询问阶段的背景是提前检查是否有阻塞的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值