架构师训练营 - 作业 6

发布于: 2020 年 07 月 15 日
架构师训练营 - 作业 6

1.请简述CAP原理

CAP 理论是针对分布式数据库而言的,它是指在一个分布式系统中,强一致性(Consistency, C)、可用性(Availability, A)、分区容错性(Partition Tolerance, P)三者不可兼得。、

<1>强一致性(Consistency),系统在执行过某项操作后仍然处于一致的状态。在分布师系统中,更新操作执行成功后所有用户都应读取到最新的值。

<2>可用性(Availability), 每个请求都应在给定时间内返回响应,而不是返回错误或失去响应。

<3>分区容错性(Partition Tolerance), 在节点间通信失败时保证系统依然可用. 对容错的要求提高会降低对可用性或一致性的期望, 要么停止系统用于错误恢复, 要么继续服务但是降低一致性。

根据CAP理论,分布式数据共享系统只能满足三个特性中的两个,而不能同时满足,因此系统设计必须在三个特性之间做出权衡。例如Amazon的Dynamo具有高可用性和分区容错性,但不能保证强一致性,也就是说用户不能立即看到用户更新的内容。

系统满足三个条件中不同的两个条件会有不同的特点。

<1>保留CA,

放弃P如果想避免分区容错性问题的发生,一种做法是将所有的数据(与事务相关的)都放在一台机器上。虽然无法100%保证系统不会出错,但不会碰到由分区带来的负面效果。当然这个选择会严重的影响系统的扩展性。作为一个分布式系统,放弃P,即相当于放弃了分布式,很多银行服务,就是舍弃了P,只用单台小型机+ORACLE保证服务可用性。

<2>保留CP,

放弃A相对于放弃“分区容错性“来说,其反面就是放弃可用性。一旦遇到分区容错故障,那么受到影响的服务需要等待一定的时间,因此在等待期间系统无法对外提供服务。作为分布式系统,有分区服务发生问题很有可能,如果因为某些服务不能用,导致整个服务都不能用。

<3>保留AP,

舍弃C这里所说的放弃一致性,并不是完全放弃数据一致性,而是放弃数据的强一致性。即放弃了同一时刻的数据一致性,而保留数据的最终一致性。以网络购物为例,对只剩下一件库存的商品,如果同时接受到了两份订单,那么较晚的订单将被告知商品告罄。通常情况下,很多分布式服务系统都是采用该方案,保证可用性性,分布式服务,因为某些分区服务发生问题,先容忍,最终通过一些折中的方法达到最终数据一致性。

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

用户头像

进击的炮灰

关注

还未添加个人签名 2020.05.13 加入

还未添加个人简介

评论

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