当我试图理解CAP中的"可用性"(A)和"分区容差"(P)时,我发现很难理解各种文章中的解释.
我有一种感觉,A和P可以在一起(我知道不是这样的,这就是为什么我不能理解!)
简单地解释一下,A和P是什么,以及它们之间的区别?
当我试图理解CAP中的"可用性"(A)和"分区容差"(P)时,我发现很难理解各种文章中的解释.
我有一种感觉,A和P可以在一起(我知道不是这样的,这就是为什么我不能理解!)
简单地解释一下,A和P是什么,以及它们之间的区别?
一致性意味着整个群集中的数据是相同的,因此您可以从/向任何 node 读取或写入数据,并获得相同的数据.
可用性意味着即使群集中的一个 node 出现故障,也能够访问群集.
分区容错意味着,即使两个 node 之间存在"分区"(通信中断)(两个 node 都已启动,但无法通信),群集仍可继续运行.
为了同时获得可用性和分区容错,您必须放弃一致性.考虑一下,如果在主-主设置中有两个 node X和Y.现在,X和Y之间的网络通信中断,因此它们无法同步更新.此时,您可以执行以下任一操作:
a)允许 node 不同步(放弃一致性),或者
b)认为集群"停机"(放弃可用性)
所有可用的组合包括:
您应该注意CA systems don't practically exist(即使有些系统声称是这样).