架构师训练营作业 -Week6

发布于: 2020 年 07 月 12 日

一、简述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临时失效的处理过程

用户头像

wyzwlj

关注

还未添加个人签名 2018.05.02 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营作业-Week6