极客时间架构师训练营 - week6 - 作业 1

发布于: 22 小时前

  • 请简述 CAP 原理。

答:CAP 原理,具体来说,是一个提供数据服务的分布式系统无法同时满足数据一致性(Consistency)、可用性(Availibility)、分区耐受性(Patition Tolerance)这三个条件。

一致性是说,每次读取的数据都应该是最近写入的数据或者返回一个错误(Every read receives the most recent write or an error),而不是过期数据,也就是说,数据是一致的。

可用性是说,每次请求都应该得到一个响应,而不是返回一个错误或者失去响应,不过这个响应不需要保证数据是最近写入的(Every request receives a (non-error) response, without the guarantee that it contains the most recent write),也就是说系统需要一直都是可以正常使用的,不会引起调用者的异常,但是并不保证响应的数据是最新的。

分区耐受性说,即使因为网络原因,部分服务器节点之间消息丢失或者延迟了,系统依然应该是可以操作的(原文:The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes)。

而实际上,当网络分区失效发生的时候,我们要么取消操作,这样数据就是一致的,但是系统却不可用;若我们继续写入数据,但是数据的一致性就无法保证。而就一个分布式系统而言,网络失效一定会发生,也就是说,分区耐受性是必须要保证的。那么在可用性和一致性上就必须二选一。当网络分区失效,也就是网络不可用的时候,如果选择了一致性,系统就可能返回一个错误码或者干脆超时,即系统不可用。如果选择了可用性,那么系统总是可以返回一个数据,但是并不能保证这个数据是最新的。

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

答:Doris框架在服务器发生临时失效时候的处理过程UML图表示如下:

失效恢复过程

发布于: 22 小时前 阅读数: 3
用户头像

jjn0703

关注

Java工程师/终身学习者 2018.03.26 加入

USTC硕士/健身健美爱好者/Java工程师.

评论

发布
暂无评论
极客时间架构师训练营 - week6 - 作业 1