分布式事务的理论知识

CAP理论

CAP是一致性(Consistency)、可用性(Availiability)、分区容错性(Partition Tolerance)首字母的缩写,CAP理论是分布式领域著名的理论

  • 一致性(Consistency):一致性要求对所有数据节点的数据副本的修改是原子操作的,要么所有的数据副本都执行成功,要么在所有的数据副本都执行失败

一致性存在的特点:

  1. 存在数据同步的过程,应用程序的写操作存在一定的延迟
  2. 为了保证各节点数据的一致性,需要对相应的资源进行锁定,待数据同步完成后在释放锁定的资源
  3. 如果数据写入并且同步成功,所有节点都会返回最新的数据,相反地,如果数据写入或者同步失败,所有节点都不会存在最新写入的数据
  • 可用性(Availiability):指的是客户端访问数据的时候,能够快速得到响应,处于这个状态的系统,每个存储节点的数据可能会不一致,并不要求应用程序向数据库写入数据时能够立刻读取到最新的数据,任何事务的操作都可以得到响应,不会出现超时或者响应错误的情况

可用性存在的特点:

  1. 所有的请求都会被响应
  2. 不会存在响应超时或者响应错误的情况
  3. 如果对不同的应用程序设定了超时响应时间,一旦超过这个时间,系统将不可用
  • 分区容错性(Partition Tolerance):将存储系统部署并且运行在多个不同的节点上,并且这些节点处于不同的网络中,这就形成了网络分区,不可避免的会出现网络问题,导致节点之间的通信出现失败,但是,此时系统仍能对外提供服务,这就是分区容错性

分区容错性的特点:

  1. 一个节点挂点,不影响其他节点对外提供服务
  2. 分区容错性是分布式系统必须必备的基础能力

CAP的组合

系统在满足分区容错性的前提下,一致性和可用性就是矛盾的,所以最终会有AP、CP、CA三种组合方式

  • AP:大部分分布式系统会采用AP的方式,舍弃了一致性,这并不代表就真的放弃了一致性,此时,架构设计方案采用了最终一致性,允许多个节点的数据在一定的时间内存在差异,一段时间后达到数据一致的状态
  • CP:放弃可用性,追求系统的一致性和分区容错性,这种组合方式对于数据的一致性要求比较高,追求的是强一致性(银行系统居多)
  • CA:放弃分区容错性,追求系统的一致性和可用性,此时系统不会进行分区,也不会考虑网络不通和节点挂点的问题,主数据库和从数据库不在进行数据的同步,此时系统也不再是一个标准的分布式系统

Base理论

Base理论是对CAP理论的一个拓展,它通过牺牲强一致性来获得可用性,Base理论中的Base是基本可用(Basically Available)、软状态(Soft State)和最终一致性(Eventually Consistent)的缩写,系统故障时,允许部分数据不可用,但是会保证核心的功能可用,允许数据在一段时间内不一致,但是经过一段时间后,数据最终是一致的

  • 基本可用:允许其损失系统的部分可用性,比如响应时间或者功能上的损失,但是保证系统的基本可用
  • 软状态:允许系统存在中间状态,中间状态不会影响系统的整体可用性,只是允许系统各个节点之间的数据同步存在延迟
  • 最终一致性:指系统中各个节点的数据副本经过一段时间的同步,最终能够达到一致的状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值