架构师训练营第六章作业

发布于: 2020 年 07 月 15 日

  • 请简述 CAP 原理。

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

CAP原理

原理说明

一致性(Consistency):一致性是说,每次读取的数据都应该是最近写入的数据或者返回一个错误,而不是过期的数据,也就是说数据是一致的;

可用性(Availability):可用性是说,每次请求都应该得到一个响应,而不是返回一个错误或者失去响应,不过这个响应不需要保证数据是最近写入的,也就是说系统需要一直都是正常使用的,不会引起调用者异常,但并不保证响应的数据是最新的;

分区耐受性(Partition tolerance):分区耐受性是说,即使因为网络原因,部分服务器节点之间消息丢失或者延迟,系统依然应该是可以操作的;

当网络分区失效的时候,我们要么取消操作,这样数据就是一致性的,但是系统却不可用;MAME我们继续写入数据,但是数据的一致性就得不到保证;

对于一个分布式系统而言,网络失效一定会发生,也就是说,分区耐受性是必须要保证的,name在可用性和一致性上就必须二选一;

当网络分区失效,也就是网络不可用的时候,如果选择了一致性,系统就可能返回一个错误码或者干脆超时,即系统不可用,如果选择了可用性,那么系统总是返回一个数据,但是并不能保证这个数据是最新的。

CAP原理与数据存储冲突

  • 总共有四个客户端,客户端1连接节点A,把ID为55的数据价格改为99,客户端2查询数据;客户端3连接节点B,把ID为55的数据价格改为75,客户端4查询数据;

  • 如果节点A和节点B通信不正常,也就是分区不正常,中间节点C也失效了,节点A和节点B数据就不同步;

  • 客户端2拿到的数据是99,客户端4数据是75,数据就是不一致的,但是每个节点都是可以正常工作,保证可用性;

Doris 临时失效的处理过程

用户头像

叮叮董董

关注

还未添加个人签名 2020.04.08 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
请添加“极客大学架构师训练营”标签
2020 年 07 月 15 日 10:56
回复
没有更多了
架构师训练营第六章作业