(一)分布式事务——CAP、BASE理论

分布式事务——理论基础

一、分布式事务和单体的事务:

以前使用单体架构,往往只有一个服务,使用一个数据库,完成业务的各种要求,因此基于数据库本身的特性就可以完成ACID。
但是到了分布式架构,一个业务可能涉及很多个服务,每个服务都有自己的数据库,而且服务之间是独立的,所以事务也是独立的。因此在完成一个业务的时候,无法利用数据库本身的ACID来完成事务的一致性。
在这里插入图片描述比如有三个服务,当其中一个服务出错,而其他服务正常执行的时候,就会出现事务不一致的情况,尽管每个服务都开起了事务功能,也无法保证事务的一致性。

二、什么是分布式事务:

在分布式系统下,一个业务跨越了多个服务或数据源,每个服务都是一个分支事务,要保证所有分支事务最终状态一致,这样的事务就是分布式事务。

三、理论基础:

1、CAP定理:

分布式系统有三个指标:一致性、可用性、分区容错性
分布式系统无法同时满足这三个指标,这个结论就叫CAP定理。
在这里插入图片描述

1.1 一致性:

用户访问分布式系统中的任意一个节点,得到的数据必须一致;也就是说,系统中一个节点的数据发生变化,则它的从节点必须及时地实现数据同步。
在这里插入图片描述

1.2 可用性:

用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝。

1.3 分区容错性:

分区:因为网络故障或者是其他原因,导致分布式系统中的部分节点与其他节点失去连接,形成独立分区。
分区容错:在集群出现分区的时候,整个系统也要持续对外提供服务。
在这里插入图片描述

1.4 CAP理论的理解:

理解了三个概念之后,不难发现,分区是无法避免的,因为我们无法保证网络一直处于健康的状态。那么分区一定会出现:
如果想保证数据一致性,那就得让分区的服务暂时阻塞不可用,等待同步完数据再回复正常服务。
如果想保证服务可用性,那就得让分区继续对外提供服务,这个时候访问主从节点,获取到的数据可能就不是一致的,因此丧失了数据一致性。
由此可见,在分布式系统中,数据一致性和服务可用性无法做到同时满足。
在这里插入图片描述

2、BASE理论:

BASE理论是对CAP的一种解决思路,它是在可用性和一致性之间做出取舍和选择,包含了三个思想:

2.1 Basically Available(基本可用):

分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用;

2.2 Soft State(软状态):

在一定的时间内,允许出现中间状态,比如临时的不一致状态;

2.3 Eventually Consistent(最终一致性):

虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

2.4 解决问题:

在分布式系统中,一个事务往往包含很多子事务,各个事务都各自执行和提交,导致状态不一致,而我们要实现的目标是让所有的子事务在最终状态的时候都一致,要么都成功,要么都失败。

AP模式
各子事务分别执行和提交,允许出现结果不一致,也就是处于软状态,然后采用弥补措施恢复数据即可,实现最终一致。

CP模式
各个子事务执行后相互等待,同时提交,同时回滚,达成强一致,但是事务等待过程中,处于若可用状态。因为这个时候事务没有提交。

AP和CP模式都需要一个协调者来帮助它们之间进行通信。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值