「架构师训练营」第 6 周作业 CAP 原理与 Doris 失效处理流程
CAP原理
简介
CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)这三个基本需求,最多只能同时满足其中的2个。
Partition Tolerance 分区容错性
在分布式系统中,一定会存在很多子网络,一个子网络我们叫做一个分区。在某些原因导致分布式系统中,子网络之间网络不通,导致分布式系统被分成了一个个孤立的区域,这就叫分区。
一般而言,分布式系统中分区不可避免,我们要保证在出现分区时系统仍然是可以使用的,因此CAP中的P总是成立。
Consistency 一致性
数据在多个副本中保持一致。读取到的是上一次写入的最新的数据。这里的一致指强一致性。
Availability 可用性
指系统的高可用。
权衡
CA without P
如果系统要保证一致性和可用性,则不可容忍分区的存在,即不能达到分区容错性。但也往往因为网络分区是一定会可能发生的,所以不太适用于现有的分布式系统。
AP without C
一旦分区发生,节点之间可能会失去联系,为了实现高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。
CP without A
在分区发生情况下,要保证数据的强一致性,就没办法保证可用性。因为分区,造成节点间数据未同步,此时如果服务可用数据将不一致。
在实践中,要根据事情情况进行权衡。对于一些互联网系统,机器数量庞大,部署的节点分散,网络故障是常发生的。所以只有牺牲一致性来保障服务的AP。而对于银行这类对一致性要求较高的场景,可能会选择CP或AC。AC即出现网络分区故障,则直接不提供服务,即不能容忍分区。而CP,即保证数据的一致性,可用性不能保证。
Doris临时失效处理流程
判定临时失效
临时失效期间的读写
读取数据从正常节点读取,因为临时节点数据可能不完整。
写入数据,往正常节点和临时节点双写。
数据恢复过程
评论