CAP、BASE、ACID区分

CAP、BASE、ACID区分

一、CAP

CAP是分布式计算领域的公认定理。

1、一致性(Consistency)

all nodes see the same data at the same time 在同一时间看见所有节点的数据是一致的

所有节点返回的数据都是一样的,数据一致性,可以理解为强一致性。

2、可用性(Available)

Reads and writes always succeed 服务总是可用的

所有节点都是可以提供服务的(节点是指正常的节点,不包括故障的节点)

3、分区容错性(Partion tolerance)

the system continues to operate despite arbitrary message loss or failure of part of the system 分区出现问题时,系统还是提供服务

部分节点出现故障,系统还是可以提供服务

如上图,服务端拥有N1、N2多个节点,A1、A2相同功能的应用服务,数据分别存储在DB1、DB2。因为网络等原因N2无法提供服务,但是client可以通过1路径访问系统,这就是分区容错;N1和N2都可以提供等同的服务,这就是可用性;如果通过1路径修改数据到DB1,client通过2路径访问DB2也可以访问到修改后的数据,这就是一致性。在分布式的情况下client通过1路径写入数据,通过2路径读数据,假设同步阶段出现问题,如果保证可用性,就会导致DB1、DB2数据不一致;如果保证数据一致性,在同步过程恢复之前N2节点就无法访问。

4、CAP选择

CAP是针对分布式提出的,所以P是必须保证的,通常在C和A之间做选择

  • 1代表的区域是不存在的
  • 2代表CA,关系型数据库
  • 3代表AP,不需要强一致性,侧重可用性,如redis、zookeeper等
  • 4代表CP,不需要高可用,侧重数据一致性,如淘宝双11服务降级,导致部分服务不可用等。

二、BASE

BASE理论是针对大规模分布式系统的实践总结出来的,是对CAP理论的延伸。

1、基本可用(Basically available)

分布式系统出现故障时,可以牺牲部分可用性。如电商大促进行的服务降级

2、软状态(Soft state)

分布式系统中存在中间状态,但是不影响系统的可用性。如不同节点数据延时同步

3、最终一致性(Eventual consistency)

分布式系统不同节点(副本)数据,通过一段时间同步后最终达到一致的状态。最终一致性是弱一致性的特殊情况。

三、ACID

ACID是事务的属性,具体查看《事务属性、隔离级别、乐观锁、悲观锁》章节。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值