第六周大作业
1,简述CAP原理
CAP原理是分布式系统中,节点状态如何同步的基本定理。
C指的是一致性(Consistency),从任何客户端向服务器发起的读请求都应该能够得到最新的数据或者是错误码。
A指的是可用性(Availability),指的是任何一个请求都应该获得一个响应,而不是错误码或者其他回应。
P 指的是分区容错性(Partition tolerance),分布式系统中某些节点发生故障时,或者节点通信发生故障的时候,系统应该还是可以用的。
由于网络的复杂性和不可控性,网络失效一定会发生,也就是系统必须保证分区容错,而系统在保证分区容错的前提下,一致性和可用性无法同时得到满足,原因在于,当发生分区的情况下,如果对外响应,就是满足了可用性,但是由于节点或者节点通信故障,导致节点之间状态无法达到一致,也就是无法满足一致性,如果不对外提供服务,等待状态一致或者返回错误,则无法满足可用性。
以上,分布式系统在满足分区容错的情况下,无法同时满足可用性和一致性,就称之为CAP原理。
根据实际需求,系统需要在一致性和可用性之间进行选择,也就是选择CP系统还是AP系统,而相对于系统不可用来说,大多数系统是允许系统短暂的不一致的。
一致性又分为强一致性和弱一致性,需要保持一致性的节点越多,一致性越强。
2,针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。
时序图如下:
1,当多次重试没有的到响应之后,向管理中心服务器申请故障仲裁。
2,管理中心向故障服务器发出心跳检测,故障检测。
3,管理中心确认故障之后,向应用服务器发出临时故障通知。
4,应用服务器依旧可以向正常服务器发出读请求。
5,应用服务器依旧可以向正常服务器发出写请求。
6,应用服务器在向正常服务器发出写请求的同时,向临时服务器发出写请求
7,故障恢复后,管理中心向应用服务器发出故障恢复通知。
8,管理中心向临时数据库发出数据迁移通知。
9,临时服务器向故障服务器进行数据迁移。
10,11,应用服务器重新向故障服务器和正常服务器发出写请求。
评论