架构师训练营作业 -Week6
一、简述CAP原理
1、是什么?
1)CAP原理用于描述分布式系统中的:一致性问题+可用性问题+分区耐受性问题
2)一致性Consistency:每次读取数据时,要么返回正确的数据,要么返回错误,不能返回一个过期的数据
3)可用性Avaliability:每次请求一定要有返回,不能返回错误或失去响应,但是允许返回不正确的数据
4)分区耐受性Partition tolerance:因为网络原因导致部分节点之间的消息丢失或延迟时,要保证系统依然可用
2、为什么存在?
1)CAP原理描述了分布式系统必然会遇到的三个问题,并且这三个问题是无法同时被完全解决的
2)C和A之间是矛盾的,且对分布式系统而言,P是必须要满足的。所以分布式系统只能同时满足CP或AP,不能同时满足CAP
3)CAP原理指导我们在设计分布式系统时,应考虑侧重于系统的可用性还是数据的一致性,而不要试图同时解决这两个矛盾的问题
4)CAP原理让我们知道设计的分布式系统必然只满足AP或CP,因此应该在业务或系统上,尽可能对缺失的另一个进行补偿处理
3、什么时候&在哪些场景下会用到?
主要是在设计分布式系统的时候,指导我们如何进行设计
4、具体是如何指导实践的?
1)实践场景中,大部分的分布式系统都是AP型的,根据CAP原理,系统会对C进行补偿,由此引出了BASE理论
2)BASE理论:
->基本可用:Basically Avaliable,即系统出现故障时,允许损失部分可用性,如响应时间上的损失或功能上的损失
->弱状态:Soft state,即允许系统中的数据存在中间状态,允许多个服务节点之间的数据同步过程存在延时
->最终一致性:Eventually consistent,多个节点上的数据副本,经过一段时间的同步后,最终能够达到一致
3)根据BASE理论,AP型分布式系统主要通过最终一致性来解决一致性问题,最终一致性一般有如下解决方法:
->时间戳+集群间时间同步
->客户端解决冲突
->投票解决冲突
二、Doris临时失效的处理过程
评论