写点什么

Week6 课后作业

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

1.请简述 CAP 原理。



对于分布式系统来说,以前三者不能同时满足。

CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。

CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。

根据维基百科定义:

一致性(Consistency):每次读取的数据都应该是最近写入的数据或者返回一个错误(Every read receives the most recent write or an error)),而不是过期数据,也就是说数据是一致的。

简单理解:要不不返回,返回就是最新的对的数据。

可用性(Availaility):每次请求都应该得到一个响应,而不是返回一个错误或者失去响应,不过这个响应不需要保证数据是最近写入的(Every request receives a (non-error) response,without the guarantee that is contains the most recent write),也就是说系统需要一直都是可以正常使用的,不会引起调用异常,但是并不保证响应的数据是最新的。

简单理解:每次请求必返回数据,但不保证数据是最新的。

分区耐受性(Partition tolerance):即使因为网络原因,部分服务器节点之间消息丢失或者延迟了,系统依然应该是可以操作的(The system continues to operate despite an arbitrary number of messages being dropped(or delayed) by the network between nodes).



总结:

当网络分区失效发生的时候,我们要么取消操作,这样数据就是一致的,介理系统却不可用;要么我们继续写入数据,但是数据的一致性就得不到保证。

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

当网络分区失效,也就是网络不可用的时候,如果选择了一致性,系统就可能返回一个错误或者干脆超时,即系统不可用。如果选择了可用性,那么系统总是可以返回一个数据 ,介理并不能可证这个数据是最新的。

所以,关于CAP原理,更准确的说法是,在分布式系统 必须要满足分区耐受性的情况下,可用性和一致性无法同时满足。



用户头像

Geek_165f3d

关注

还未添加个人签名 2019.12.14 加入

还未添加个人简介

评论

发布
暂无评论
Week6课后作业