写点什么

架构师训练营第六周作业

用户头像
王铭铭
关注
发布于: 2020 年 07 月 15 日

CAP原理:



C:Consistency

即一致性,访问所有的节点得到的数据应该是一样的。注意,这里的一致性指的是强一致性,也就是数据更新完,访问任何节点看到的数据完全一致,要和弱一致性,最终一致性区分开来。

A:Availability

即可用性,所有的节点都保持高可用性。注意,这里的高可用还包括不能出现延迟,比如如果节点B由于等待数据同步而阻塞请求,那么节点B就不满足高可用性。

也就是说,任何没有发生故障的服务必须在有限的时间内返回合理的结果集。

P:Partiton tolerence

即分区耐受性,这里的分区是指网络意义上的分区。由于网络是不可靠的,所有节点之间很可能出现无法通讯的情况,在节点不能通信时,要保证系统可以继续正常服务。



当网络分区失效发生的时候,如果取消操作,这样数据一致但是系统不可用;如果继续写入数据,那么数据的一致性就无法保证。

对于一个分布式系统而言,网络失效一定会发生,这也就代表着,分区耐受性必须保证,那就需要在可用性和一致性上必须二选一。

当网络分区失效,即网络不可用,如果选择一致性,那么系统就可能返回一个错误码或者反馈超时,即系统不可用;如果选择了可用性,那么系统一定可以返回一个数据,但是无法保证这个返回的数据是最新的。

对于分布式系统来说,三者无法同时满足,由于分区耐受性必须满足,即代表着可用性和一致性无法同时满足。

用户头像

王铭铭

关注

还未添加个人签名 2020.01.14 加入

还未添加个人简介

评论

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