分布式 CAP 理论的一个问题请教

2017-02-22 17:57:23 +08:00
 Powered

摘自博客:

在某时候如果满足 AP ,分割的节点同时对外服务但不能互相通信,将不能满足 C (即状态不一致)

为什么分割的节点同时对外服务但不能互相通信?求解

1972 次点击
所在节点    程序员
6 条回复
jason0916
2017-02-22 18:05:39 +08:00
应该是指因为节点分割带来的数据同步延时导致的一致性不满足吧?
Powered
2017-02-22 18:35:47 +08:00
@jason0916 所以要同时满足 CA ,就能出现网络分区是吗
Powered
2017-02-22 18:36:19 +08:00
@jason0916 #2 “就”和“能”之间添加“不”
jason0916
2017-02-22 18:51:11 +08:00
@Powered 按照 cap 理论来说是这样的
jybox
2017-02-22 18:58:10 +08:00
可以设想一下,假设出现了分区( P ),就是你的服务器被分成了两个部分,每个部分内部可以通讯,也都可以分别对外服务,但两个部分之间不能通讯。这个时候你就必须做出一个选择:

1. 要么保证可用性( A ),继续允许读写操作,但因为两个部分无法同步数据,所以会出现不同步( C )
2. 或者保证一致性( C ),拒绝写入操作,直到两个部分恢复再允许写入,但这样就会出现服务不可用( A )

或者如果你可用性和一致性都需要的话,那你就无法满足分区容错性。
Mirana
2017-02-23 13:37:20 +08:00
网络分区

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/342387

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX