写点什么

1. 请简述 CAP 原理。

用户头像
张荣召
关注
发布于: 2020 年 11 月 01 日

解析:

1.CAP名词解释

CAP名词解释:C(一致性),A(可用性),P(分区耐受性)

C: Consistency:一致性,特指(数据一致性)。每次读取数据都能得到最近写入的数据或者得到一个错误,而不是过期数据。英文解释:Every read receives the most recent write or an error.

A: Available: 可用性。每次请求都能得到一个响应,而不是返回错误,或者失去响应。但是响应的数据不保证是最近写入的,即不保证数据是最新的。英文解释:Every request receive (non-error) response ,without the guarantee that it contains the most recent write.

P: Partition tolerance :分区耐受性,或者叫做分区容错性。整个系统对局部的错误忍耐接受程度。局部服务器因为网络,或者服务器本身等原因,造成消息丢失或者延迟,系统仍然可以操作的。在分布式系统中,局部错误是一定会发生的,即分区耐受性一定会发生。英文解释:The system continues to operate despite an arbitrary number of message being dropped or delayed by the network between nodes.

2.CAP三者之间关系

1. 分布式系统必定发生分区耐受性(P):对于分布式系统,网络失效一定会发生。发生时,一定要保证系统仍然时可以操作的,即必须保证分区耐受性P。

2.PC关系:当P发生时,即当网络失效时,返回错误,或者取消操作,保证数据一致性C,但系统不可用,不保证可用性A。

3.PA关系:当P发生时,即当网络失效时,继续操作,继续向系统写入数据,即保证系统可用性A,但是不保证数据的一致性C。

4.二选一:在分布式系统保证分区耐受性P的前提下,数据一致性C和可用性A,不可能同时满足。要么选择数据一致性C,要么选择可用性A,二选一。

3.CAP与互联网分布式系统

互联网分布式系统本身的特点:分布式,主流架构以分布式存在,一定要保证分区耐受性P。

互联网分布式系统关注点之一:高可用,可用性A是必须选择的。

==>互联网分布式系统:选择PA。即互联网分布式系统在保证分区耐受性P的前提下,

保证高可用A,降低一致性C的要求:由实时强一致性降低到最终一致性。

4.最终一致性

互联网分布式系统,选择PA。在数据存储集群中,请求写入数据到某一台服务器时,允许数据写入。

但是此时,集群内其他服务器数据仍为旧数据,读取操作读取旧数据。这是可以接受的。等待新写入数据的服务器,对集群内所有服务器同步完成,所有服务器数据更新为最新数据。用户获取最终最新数据。即数据最终一致性--返回给用户的最终数据是一致的。但是不保证集群内数据是一致的。

5.最终一致性数据冲突

数据写入集群内服务器时,到同步完成的这段时间内,集群内数据有最新版本和过期版本,同时存在。即集群内数据不一致。不同客户端访问集群内不同的服务器,会得到不同版本。

6.最终一致性解决方案

为了用户能够获得最终一致性数据,提出相关解决方案:

1.最终一致写冲突解决方案:以最新时间戳为准,覆盖过期版本数据。

2.客户端解决冲突方案:客户端合并冲突数据。

3.投票解决冲突方案:数据获取投票数量最多者,为最终数据。

7.投票解决方案

1.写多份:写入数据时,同时写入多份。一为保证数据高可用,二为读取可投票。

2.读取: 从节点中读取相关数据的所有版本。

3.投票表决:数据为自己版本投票,获取投票数最多者,为最终数据,返回给所有访问客户端。

8.投票解决方案---相关产品

1.Cassandra:

写三份: 数据写入三次到不同节点,有两次写入成功,即使有一次失败,也认为数据写入成功。

读一份:读取时,取出三个节点的数据,并投票,得票数最多者,即为最终数据,返回给客户端。

2.HBase:

HMaster集群对外提供服务时,只有一台可成为当前活动主服务器。如果有多台HMaster申请成为当前活动主服务器。可通过投票决定那一台HMaster作为主服务器。投票解决方案产品:ZooKeeper。

9.ZooKeeper与分布一致性

1.分布一致性算法Paxos:Proposer提案者,提案给Acceptors接受者,Acceptors接受者承诺Promise,投票提案。Proposer获取最多投票者,形成决议,并将决议发送给所有的Learners。即通过投票达到一致性。

2.Zab协议:Leader发起提案,提交给所有FOLLOWER;所有FOLLWER投票提案,并回执ACK给LEADER,LEADER统计投票结果,形成最终决议,通知所有FOLLOWER更新决议结果。即投票达到一致性。



作业2:

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



解析:



1.临时失效状态---UML时序图:



2.临时失效中的读写过程--UML时序图



3.失效恢复过程-UML时序图:



用户头像

张荣召

关注

还未添加个人签名 2018.05.02 加入

还未添加个人简介

评论

发布
暂无评论
1.请简述 CAP 原理。