gpt4 book ai didi

database - CAP 定理 - 可用性和分区容错性

转载 作者:太空狗 更新时间:2023-10-30 01:36:51 26 4
gpt4 key购买 nike

虽然我试图理解CAP中的“可用性”(A)和“分区容忍度”(P),但我发现很难理解各种文章的解释。

我感觉 A 和 P 可以走到一起(我知道事实并非如此,这就是我无法理解的原因!)。

深入浅出,A和P是什么,它们有什么区别?

最佳答案

一致性意味着数据在整个集群中是相同的,因此您可以从/向任何节点读取或写入并获得相同的数据。

可用性意味着即使集群中的节点出现故障,也能够访问集群。

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

为了同时获得可用性和分区容错性,你不得不放弃一致性。考虑在主-主设置中是否有两个节点 X 和 Y。现在,X 和 Y 之间的网络通信中断,因此他们无法同步更新。此时您可以:

A) 允许节点不同步(放弃一致性),或者

B) 考虑集群“宕机”(放弃可用性)

所有可用的组合是:

  • CA - 所有节点之间的数据都是一致的 - 只要所有节点都在线 - 你可以从任何节点读取/写入并确保数据相同,但如果你曾经在节点之间建立一个分区,数据将不同步(并且一旦分区被解析就不会重新同步)。
  • CP - 数据在所有节点之间保持一致,并通过在节点出现故障时变得不可用来保持分区容错性(防止数据不同步)。
  • AP - 即使节点无法相互通信,节点也会保持在线状态,并且会在分区解决后重新同步数据,但不能保证所有节点都具有相同的数据(在分区期间或之后)

你应该注意到 CA systems don't practically exist (即使某些系统声称如此)。

关于database - CAP 定理 - 可用性和分区容错性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12346326/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com