架构师训练营第六周作业
问题1
简述CAP原理。
CAP原理
C(Consistent) 一致性:请求数据要么返回最新写入的数据,要么请求失败。不会返回过期的数据。
A (Available) 可用性:请求总是能得到响应。而不是返回一个错误或者没有响应。并不保证返回的数据是最新的。
P (Partition Tolerance) 分区耐挫性: 即使网络延迟或者丢失了一些服务器节点之间的消息,系统依然是可以操作的。
CAP原理告诉我们CAP三点无法同时满足,最多只能取两点。对于分布式的系统,由于网络的不稳定性是随时都存在的。所以一个可以操作的系统一定要实现P,所以就要在C与A之间作出取舍。
BASE是工业界中更为常见的解决方法。
强调一下E:Eventually consistent 最终一致性
定义:虽然会出现实时的数据的不一致,但在一定的时间的同步后,各个数据副本会变成一致的。
How to achieve eventually consistent?
加上时间戳,后写入的数据覆盖
客户端解决冲突(购物车的例子,客户端得到多个购物车就进行合并)
投票解决冲突 (例如Cassandra: 尝试写入三个节点,当能写入两个节点后返回成功/ 尝试从三个节点读取,当读到两个节点值之后,返回最新的数据)
问题2
针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。
评论