架构师训练营第一期 - 第六周课后作业
请简述 CAP 原理。
Nosql 数据库是基于 CAP 和 BASE 理论来设计实现的。
CAP 理论:指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),只可同时满足 CAP 其中两点,无法三者兼顾。
分区容错性(P):在机器故障、网络故障、机房停电等异常情况仍然能满足可用性。(采用副本方式处理)
一致性(C):在任意时刻读操作读取到的数据都是上一次写入的数据,在分布式系统中就需要所有数据备份在同一时刻的值是相同的。(所有副本数据一致)
可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(数据具备高可用性)
在一个分布式系统中,异常情况是一定存在的,因此分区容错性是必须要满足的,所以就必须在 C 和 A 之间去做权衡处理,这个权衡则是通过 BASE 理论来处理的。
BASE 理论:
基本可用(Basically Available)系统在出现不可预知故障时,允许损失部分可用性,如响应时间上的损失或功能上的损失。
Soft state(弱状态)软状态,指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。
Eventually consistent(最终一致性)指系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态,因此最终一致性的本质是需要系统保证数据能够达到一致,而不需要实时保证系统数据的强一致性。
评论