架构师训练营 -Week06
一、CAP原理
CAP 是分布式系统的理论基础,CAP 三个字母代表分布式系统的三个特性.
C:Consistency 一致性
在分布式系统中完成写操作后,在任何节点进行读操作都能读到一致的最新的值。
A:Availability 可用性
系统一直可以提供正常及时的读写操作。
P:Patition tolarence 分区容错性
在分布式系统中的某个节点或者网络分区出现了故障的时候,整个系统仍然能对外提供满足一致性和可用性的服务。也就是说部分故障不影响整体使用
CAP 理论说的是在分布式系统中,系统只能满足CAP中的两个特性,无法同时满足三个特性。
为什么无法同时满足三个特性呢。
假如保证分区容错性。在某个节点出现网络分区或者故障时,仍然可以进行读写操作,此时整个系统无法同时满足可用性和一致性。
例如 下图所示
分布式系统中的两个节点的初始值是V0,客户端对节点N1进行了写V1的操作。由于网络分区,N2节点没有同步到最新的数据,还是V0,此时客户端对N2进行了读操作,读到的还是V0,此时不满足一致性了。相当于满足了可用性,失去了一致性。
加入保证一致性,此时由于节点N2数据还没有得到同步,此时客户端读取N2的数据时,会一直等待,因为系统要保证数据同步成功了,才让节点可用。此时相当于满足了一致性,失去了可用性。
2.假如要保证一致性和可用性。还是上面的图,客户端对节点N1进行了写操作,此时发生了网络分区,导致节点N2没有同步到最新的值,为了保证数据的一致性和系统的可用性,只能舍弃掉节点N2,也就是放弃分区容错性,此时系统不再是分布式系统了。
二、学习总结
这一周的课程主要讲的是分布式系统中的分布式存储和分布式协同框架,分布式系统的基础理论CAP。
分布式系统要解决的问题都是对CAP理论中三个特性的取舍和选择。
Doris系统选择的是保证CP,放弃可用性。
Zookeeper是分布式协同框架,来保证分布式系统中的数据一致性,Zookeeper可以保证CP。
评论