Skip to content

Latest commit

 

History

History
60 lines (23 loc) · 2.39 KB

分布式CAP原理.md

File metadata and controls

60 lines (23 loc) · 2.39 KB

在分布式系统中,也有类似数据库ACID的特性——就是CAP

1. Consistency 一致性

一致性又包括强一致性和弱一致性,强一致性是指在它能被访问的任何节点看到的数据都是一样的

==弱一致性==一般实现时最终一致性,允许开始时可能存在差异,但随着时间推移,最终数据保持一致

2. Availability 可用性

强调集群一直可以用,可以提供服务

3. Partition Tolerance 分区容忍性

及时一部分集群坏掉了,另一部分集群仍能正常工作
一般来说分布式集群都会保证P优先,即集群部分节点坏死不影响整个集群的使用,然后再去追求C和A。因为如果放弃P——分区容忍性,那不如就直接使用多个传统数据库了。事实上,很多微服务分库分表就是这个道理

如果追求强一致性,那么势必会导致可用性下降。比如在Master-Slave的场景中,Master负责数据写入,然后分发给各个节点,所有节点都写入成功,才算写入,这样保证了强一致性,但是延迟也会随之增加,导致可用性降低。


BASE 理论

BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。

BASE是指==基本可用==(Basically Available)、==软状态==( Soft State)、==最终一致性==( Eventual Consistency)

1.基本可用(Basically Available)

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

电商大促时,为了应对访问量激增,==部分用户可能会被引导到降级页面==,服务层也可能只提供降级服务,这就是损失部分可用性的体现。

2.软状态( Soft State)

软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。

==分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。mysql replication的异步复制也是一种体现==。

3.最终一致性( Eventual Consistency)

最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态

最终一致性是弱一致性的一种特殊情况。