写点什么

Week 06- 作业一:CAP 原理

用户头像
dean
关注
发布于: 2020 年 07 月 14 日

下面两题,至少选做一题

  • 请简述 CAP 原理。

  • 针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。

CAP 原理

CAP 理论是整个分布式系统都相关的一个概念,对分布式系统的特性做了高度抽象,

形成了三个指标:

  • 一致性(Consistency)

不管客户端访问哪个节点,要么返回的都是最新写入的数据,要么读取失败。

一致性强调的是数据正确

  • 可用性(Availability)

任何来自客户端的请求,不管访问哪个非故障节点,都能得到响应数据,但不保证是同一份最新数据。

可用性强调的是服务可用

  • 分区耐受性(Partition Tolerance)

即使因为网络原因,部分服务节点之间的消息丢失或者延迟了,系统依然是可以操作的。

分区耐受性强调的是集群对分区故障的容错能力



众所周知,只要有网络交互就一定会有延迟和数据丢失,而这种状况我们必须接受,还必须保证系统不能挂掉。所以就像我上面提到的,节点间的分区故障是必然发生的。也就是说,分区耐受性(P)是前提,是必须要保证的。



在此前提之下,需要在一致性(C)和可用性(A)进行选择了:

要么选择一致性,保证数据正确;

要么选择可用性,保证服务可用。

当选择了一致性(C)的时候,一定会读到最新的数据,不会读到旧数据,但如果因为消息丢失、延迟过高发生了网络分区,那么这个时候,当集群节点接收到来自客户端的读请求时,为了不破坏一致性,可能会因为无法响应最新数据,而返回出错信息。

当选择了可用性(A)的时候,系统将始终处理客户端的查询,返回特定信息,如果发生了网络分区,一些节点将无法返回最新的特定信息,它们将返回自己当前的相对新的信息。



也就是说在分布式系统必须保证分区 耐受性的前提之下,可用性和一致性无法同时满足。

这个特性也就是大家常说的,CAP不可能三角:对于一个分布式系统而言,一致性、可用性、分区耐受性3 个指标不可兼得,只能在 3 个指标中选择 2 个。



Doris临时失效时序图



发布于: 2020 年 07 月 14 日阅读数: 50
用户头像

dean

关注

还未添加个人签名 2019.11.06 加入

还未添加个人简介

评论

发布
暂无评论
Week 06- 作业一:CAP原理