架构师训练营第六章作业

发布于: 2020 年 07 月 15 日
架构师训练营第六章作业

简述CAP原理

CAP原本是一个猜想,2000年PODC大会的时候大牛Brewer提出的,他认为在设计一个大规模可扩放的网络服务时候会遇到三个特性:一致性(consistency)、可用性(Availability)、分区容错(partition-tolerance)都需要的情景,然而这是不可能都实现的。之后在2003年的时候,Mit的Gilbert和Lynch就正式的证明了这三个特征确实是不可以兼得的。该理论是NoSQL数据库管理系统构建的基础

Consistency 一致性

一致性指的是所有节点在同一时间的数据完全一致。对他们用户来说,就好像是操作了同一个数据库的同一个数据一样。

因此对于一致性,也可以分为从客户端和服务端两个不同的视角来理解。

(1)客户端

从客户端来看,一致性主要指的是多并发访问时更新过的数据如何获取的问题。

(2)服务端

从服务端来看,则是更新如何分布到整个系统,以保证数据最终一致。也就是N1节点和N2节点如何通信保持数据的一致。

对于一致性,一致的程度不同大体可以分为强、弱、最终一致性三类

(1)强一致性

对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。

(2)弱一致性

如果能容忍后续的部分或者全部访问不到,则是弱一致性。

(3)最终一致性

如果经过一段时间后要求能访问到更新后的数据,则是最终一致性。

Availability 可用性

可用性指服务一直可用,而且是正常响应时间。就好比刚刚的N1和N2节点,不管什么时候访问,都可以正常的获取数据值。而不会出现问题。好的可用性主要是指系统能够很好的为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。

Partition tolerance 分区容错性

分区容错性指在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。就好比是N1节点和N2节点出现故障,但是依然可以很好地对外提供服务。

Doris 临时失效时序图

用户头像

吴吴

关注

还未添加个人签名 2018.03.02 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第六章作业