CAP定理中可用性和分区容错性的区别

问题描述 投票:0回答:4

我知道 SO 上也有一个相同的问题,但我发现那里的答案没有帮助。

可用性表示,即使系统中的一个或多个节点发生故障,系统也会返回非错误响应。

分区容错性意味着即使系统中的某些节点发生故障或系统中存在通信中断,系统仍将保持整体运行。

如果我没记错的话,这两者都意味着即使系统中的某些节点发生故障,客户端也会收到响应。两者有什么区别?

database nosql consistency availability
4个回答
0
投票

可用性是指发送到NOT的节点的每个请求都返回有效响应。如果是写入请求,则节点应该返回有效响应,即使它无法将新的更新传达给系统中的其他节点。同样,如果是读取请求,节点应该返回其拥有的数据,即使它无法保证它是最近更新的数据。

分区容忍意味着即使存在网络分区,即两个节点之间的连接中断并且无法来回通信,系统也不会宕机。请注意,网络分区仅意味着系统中两个节点之间缺乏通信,并不意味着任何节点已关闭。

对于分布式系统,我们不能保证不会出现网络分区,因为网络连接位于我们系统的范围之外,为了确保系统继续工作,我们要么牺牲一致性,要么牺牲可用性。


0
投票

可用性是指即使集群中的某个节点出现故障,也能够访问集群。

分区容忍意味着即使两个节点之间存在“分区”(通信中断)(两个节点都已启动,但无法通信),集群仍能继续运行。

来自:https://stackoverflow.com/a/12347673/6567891


0
投票

分区本质上是分割数据以加快处理速度。 但分割得越多,就越容易出现分区问题。 有 2 个或更多节点。

因此 P 代表分区根本不是分区容错!连我都可以看到这个...... 它与 A 相反(有 2 个或更多副本)

但是当人们将 A(复制)和 P(分区)放在一起时,PA 就可以了(可以容忍分区) 在这种情况下,您需要用于分区的节点、用于后面复制的节点以及负载均衡器(可以是客户端)。


0
投票

分区容错性是指一组节点与另一组节点是隔离的。宕机的节点本身并不是一个分区。不能直接通信但可以通过第三个节点间接通信的两个节点也不是分区。

© www.soinside.com 2019 - 2024. All rights reserved.