架构师培训 -06 分布式数据库、NOSQL 和 ZK
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永久故障时序图
评论