架构师培训 -06 分布式数据库、NOSQL 和 ZK

发布于: 2020 年 07 月 15 日

1.请简述 CAP 原理

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

  • 一致性(Consistency, C)

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

  • 可用性(Availability, A)

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

  • 分区耐受性(Partition Tolerance, P)

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

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

在分布式系统中网络失效是一定存在的,也就是说分区受耐性是一定要保证的,那么在一致性和可用性上就必须二选一。所以在CAP中要么选择CA要么就选择CP。

BASE理论

BASE理论是基于CAP定理演化而来,是对CAP中一致性和可用性权衡的结果。核心思想是指即使无法做到强一致性,但每个业务根据自身的特点,采用适当的方式来使系统达到最终一致性。

  • 基本可用(Basically Available):指分布式系统在出现故障的时候,允许损失部分可用性,保证核心可用。但不等价于不可用。

  • 软状态(Soft state):软状态是指允许系统存在中间状态,并且该中间状态不会影响系统整体可用性。即允许系统在不同节点间副本同步的时候存在延时。

  • 最终一致性(Eventually consistent): 系统中的所有数据副本经过一定时间后,最终能够达到一致的状态,不需要实时保证系统数据的强一致性。最终一致性是弱一致性的一种特殊情况。

BASE理论面向的是大型高可用可扩展的分布式系统,通过牺牲强一致性来获得可用性。ACID是传统数据库常用的概念设计,追求强一致性模型。

2.画出Doris部分时序图

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

2.1临时故障时序图

2.2永久故障时序图

用户头像

刘敏

关注

还未添加个人签名 2018.04.25 加入

还未添加个人简介

评论

发布
暂无评论
架构师培训 -06 分布式数据库、NOSQL和ZK