Bootstrap

架构训练营-week6-作业

架构训练营week6课后作业

作业一(至少完成一项):

1. 请简述CAP原理

CAP理论主要针对的是分布式系统,CAP分别表示:

  • Consistency 一致性

  • Availability 可用性

  • Partition Tolerance 分区容错性

CAP理论最关键的一个论点就是:在一个系统中,最多只能同时满足CAP3个特性中的2个,不能3个同时满足。对于分布式系统而言,由于必须满足分区容错性P,那么系统在设计时,就只能在可用性A、一致性C之间做出取舍。这个结论也经常用如下形式的图来表示。

该理论模型最有价值的地方在于,既然我们知道了CAP理论,那么我们在设计一个分布式系统时,就不用再去耗费精力尝试设计一个同时满足C、A、P的系统,因为已经证明这是不可能的,我们只需要选取其中的两个目标作为系统的设计目标。

下面简单列举下常见分布式系统对于CAP理论的支持:

2. 用 UML 时序图描述 Doris 临时失效的处理过程

注:由于时间不太充裕,apache doris源码没法一一推敲,只能根据课上讲解内容、自己的一些猜测来画序列图,尽量保证逻辑上是能走通的。

说明:下面图中

应用服务器:读写数据的客户端

存储服务器1:一直正常的服务端

存储服务器2:发生故障、又恢复的服务端

仲裁服务器:判断服务端是否失效

临时服务器:发生临时失效时的备份服务器

1、系统判断进入临时失效

下面这过程中,如果"应用服务器写入存储服务器"这个过程,不是由客户端自己去找出需要写的两个服务器,而是采用类似kafka的思路,只写入一个leader、由这个leader自己去负责写入多个副本,那序列图就又不一样。

不过从已有的ppt、文档来看,下图应该是比较贴近实际的。

2、临时失效中的读写过程

临时失效的服务器不参与正常读写。

3、失效恢复过程

恢复过程:

1、恢复后,写操作会同步写给已恢复的服务器;

2、临时服务器中已保存的内容会同步给已恢复的服务器,所有同步操作完成后,会告知仲裁服务器,然后就可以恢复到正常读写。