rooobot / architecture-training

Architecture training camp homework
0 stars 2 forks source link

架构师训练营-第六周练习:作业 #14

Open rooobot opened 4 years ago

rooobot commented 4 years ago

简述CAP原理

答:

CAP定理又称为布鲁尔定理,它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

CAP理论是基于分布式环境下的,所以P是前提项(所以就不存在CA模型),是必须要保证的,所以,通常情况下,我们需要对CA做出选择,要么选择一致性以保证数据的准确性,要么选择可用性以保证服务的可用性。

如果选择了C,客户端在读操作时,一定会读到最新的数据,而不会读到旧数据,但是,在网络环境不稳定时(比如网络延迟可高、网络丢包等网络不通),因为要保证一致性,所以,集群可能因为无法响应最新的数据给客户端,而返回一个出错的信息;

如果选择了A,系统对客户端的查询始终会做出正常的响应,但是,在网络环境不稳定时(比如网络延迟可高、网络丢包等),因为要保证可用性,客户端要读操作时,集群的节点会响应当前时刻自己的最新数据(但可能不是全局最新的数据);

上面的两种选择就对应了我们通常说的CP模型和AP模型。

使用CP模型的软件,如etcdconsul等;使用AP模型的软件,如CassandraDynamoDB等。

其中,CP模型牺牲了可用性;AP模型牺牲了一致性,取而代之的是以最终一致性,用来代替CP模型中的强一致性。