架构师训练营 1 期 -- 第六周作业

用户头像
曾彪彪
关注
发布于: 3 小时前
  1. 请简述 CAP 原理。

答:CAP定理是只,在一个分布式系统中,对于数据的读写操作,只能同时满足一致性Consistence, 可用性Availability和分区容错性Partition Tolerance中的两个。



一致性是指,对于客户端来说,每次都能读取到最新的结果,不会读取到过期的数据。



可用性是指,对每一个用户请求,总能得到一个返回结果,这个结果可能是空,或者是一个正确的值,或者是一个过期的值,但是不会不返回或者其它结果如超时错误。



分区容错性是指,当出现网络故障后,系统可以继续提供服务。



因为分布式系统肯定是部署在不同机器上的,网络故障也必定存在,所以分布式系统只能同时满足CP或者AP。



比如数据库的主从复制,当出现网络故障后,主服务器(写服务器)无法将数据复制到从服务器(读服务器),那么客户从读服务器读到的数据就不是最新的数据,满足了可用性,却无法满足一致性,所以此时满足的是AP。



如果我们的数据要写两份,同时写到Node1和Node2,只有两个节点数据都写入成功时,才算写入成功,这样两个节点的数据是一致的。当Node2不可访问时,那么写入Node2就会失败,也就意味着我们的数据写入失败,此时系统是不可用的。在这个场景中,我们保证了一致性,但是系统变得不可用,满足CP。



关于CAP定理的理解,需要注意以下事项:



  • CAP关注的是数据,不是整个系统。这就告诉我们,在一个系统中,可以对数据进行分类,有些数据需要满足CP,有些数据需要满足AP。比如商品系统中,商品价格可以满足CP,商品评价可以满足AP。

  • CAP定理是说,当发生网络分区时,只能选择CP和AP,但是在没有发生网络故障时,我们应该尽量同时满足CA。

  • 在发生网络分区时,我们只能满足A或者C中的一种,但这并不意味着什么都不做。我们可以做些日志,网络分区恢复后系统回复做准备。比如满足AP的系统,在网络故障回复后,再同步数据,最终达到数据的一致。






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





用户头像

曾彪彪

关注

还未添加个人签名 2019.03.23 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 1 期 -- 第六周作业