根据Cap定理的CA分布式系统如何存在

pvj*_*jhs 5 cap-theorem

分布式系统如何保持一致和可用-CA。因为当分区发生时,CA是不可能的。如果我们说不会发生分区,那么只有它们是CA,那么,如果不会发生分区,则所有CP或AP系统也将是CA。

Joã*_*tos 9

可以,但不会。

CAP 定理解释了当一个或多个节点与集群的其他节点隔离时的保证。在这种情况下,节点具有三个选项,这会导致三个已知的 CAP 权衡: i) 它持续响应任何收到的请求AP;ii) 它不再响应收到的请求,直到它再次能够到达其他CP;iii) 在收到任何删除分区及其CA 的请求之前,它会关闭。

换句话说,您可以通过关闭节点而不是容忍分区来实现 CA,但请记住,分区可能会继续发生,因此这将收敛到集群中有单个节点的情况,我假设这样与您想要的相反,即拥有一个包含多个节点的集群就是重点。

因此在实践中你最终会在CPCA之间进行选择。请参阅此答案以获取更多说明性示例。


Dav*_*lai 7

稍晚一点的答案,对不起:

不可以

如常提到的那样,原始形式的CAP定理有点误导。可以重述为

在存在网络分区的情况下,分布式系统可用或一致

所以你是对的。通常,不能将系统仅分类为CA,CP或AP,因为分区容限是系统的属性,它描述了在进行网络分区时应选择的内容。因此,系统有时可能会根据AP行为,而有时可能会根据CP行为(但并不常见)。

另一个有趣的部分是RDBMS数据库通常位于三角形的CA端。仅在单节点设置中是这种情况。即使使用主(写)-从(读)设置,系统也不是CA(或者如果是CA,则可能会出现分支裂情况,​​为分区选择新的主等等)。

有用的阅读:https : //codahale.com/you-cant-sacrifice-partition-tolerance/