01、CAP与BASE理论
CAP
定义
- 一致性(Consistency): 除非读取失败,否则不管访问的是哪个节点,在同一时间的数据返回的数据都是完全一致的;
- 可用性(Availability):服务总是能正常响应数据,但不保证是最新数据;
- 分区容错性(Partition Tolerance):在分布式系统内,即使因部分节点或者网络分区故障,导致任意数量的请求响应丢失或者延迟已经发送,后续系统仍能够对外提供服务;
侧重点
- 一致性强调的不是数据完整性,而是各个节点之间数据一致;
- 可用性强调的是服务可用,但不保证数据的一致;
- 分区容错性强调的是对分区故障的容错能力,即分布式系统不会因为已经发生过的故障导致整个系统会挂掉;
CAP权衡
CA
由于在分布式系统中,由于网络延迟或网络分区的存在,P是一个基本要求,CA在分布式系统中几乎不存在;
CP
必须保证分布式系统的一致性,以至于可以牺牲掉系统的可用作容许系统停机或长时间无响应。例如像Redis、HBASE等分布式存储系统以及想Zookeeper这种分布式协调组件,必须要保证数据的一致性;
AP
牺牲分布式系统的强一致性,保证分布式系统的可用性;
BASE理论
定义
BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的简写,BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的结论,是基于CAP定理逐步演化而来的,其核心思想是即使无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。
参考
如果觉得我的文章对您有帮助,请随意打赏。