分布式理论:CAP

1. 定义:CAP是一致性(Consistency),可用性(Avalibility),分区容错性(Partition Tolerance)的单词首字母缩写。CAP是分布式系统事物处理的重要理论。在一个分布式系统中,最多只能满足这三个特性中的两个,而不能全部满足三个。

(1)一致性是指在分布式系统中,服务端系统在数据更新后如何同步到整个分布式系统,以保证数据最终一致性。

(2)可用性是指服务一直可用且能够正常响应(不保证返回的是最新写入的数据)

(3)分区容错性是指分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。

2. 由于CAP理论阐明了在分布式事务中,在P发生问题是,不能够同时确保C和A,则势必要对CAP理论进行权衡。P是不能舍弃的,否则就不是分布式系统了,所以只能在AP和CP进行权衡。

CP应用场景:设计成CP的系统比较典型的就是分布式数据库,在发生极端情况时,优先保证数据的强一致性,代价就是舍弃系统的可用性。如Redis、HBase这种分布式存储系统,如ZooKeeper这种分布式协调系统,数据的一致性是最基本的要求

AP应用场景:对于多数大型互联网应用的场景,主机众多,部署分散,而且现在的集群规模越来越大,所以节点故障、网络故障时有发生,要保证服务达到N个9,保障AP舍弃C(退而求其次保证最终一致性)是常见的一种选择。比如 Eureka

3. CAP的不足:

(1)CAP 定理本身是没有考虑网络延迟的问题的,它认为一致性是立即生效的,但是,要保持一致性,是需要时间成本的,这就导致往往分布式系统多选择 AP 方式

(2)一致性和可用性并不仅仅是二选一的问题,只是一些重要性的区别,当强调一致性的时候,并不表示可用性是完全不可用的状态。比如,Zookeeper 只是在 master 出现问题的时候,才可能出现几十秒的不可用状态,而别的时候,都会以各种方式保证系统的可用性。而强调可用性的时候,也往往会采用一些技术手段,去保证数据最终是一致的。CAP 定理并没有给出这些情况的具体描述

4. 事务的ACID(原子性、一致性、隔离性、持久性)是数据库事务的一种特性。

5. BASE是分布式事务处理中的一种扩展理论,他是AP下保持事务最终一致性的一种方案,它对事务提出了三个建议.

(1)Base Avalible-基本可用,是鼓励通过预先的架构设计或者前期规划,尽量在分布式的系统中,把以前可能影响全平台的严重问题,变成只会影响平台中的一部分数据或者功能的非严重问题。(应用场景:分库分表)

(2)Soft state-软状态;是状态可以有一段时间不同步,存在异步的情况,而该状态不会影响系统整体可用性。

(3)Eventually consistency-最终一致性:指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。

参考资料

1.分布式系统的CAP定理详解 - 知乎

2.看完这篇,保证让你真正明白:分布式系统的CAP理论、CAP如何三选二 - 知乎

3.当年,我的架构师之路,幸亏有BASE理论 - 知乎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值