mongodb - MongoDB 中的高可用性

标签 mongodb document-oriented-db

大家都说mongoDB是CAP定理中的CP!但是使用主从复制,它也具有高可用性(如果一个主节点发生故障,其余成员将自动尝试选举一个新的主节点)。我的问题是,在什么情况下(以及如何)它可以有 AP(具有最终一致性)?

最佳答案

实际上,答案分为两部分:

  1. 分片级别:每个数据段只有一个权威分片 (C),分片独立工作 (P),如果分片不可用,则其数据也不可用 (A)

  2. 副本集级别:只有一个权威主节点 (C),如果需要,将选择一个新的主节点 (P),如果没有主节点(在投票阶段应该只持续几秒钟,但是够了)您无法访问该节点上的数据。如果启用从辅助节点读取(最终一致性),则可以在投票阶段从辅助节点读取数据,但仍然不会写入新数据。因此这是一个 CP 系统。

一般来说,您不会完全失去第三个特征,但可以用它来换取额外的延迟/开销或短时间内没有它。

关于mongodb - MongoDB 中的高可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16248656/

相关文章:

javascript - contenteditable 的用途是什么?我可以将其用作编辑个人资料按钮吗

python - 如何使用 CouchDB 构建 "Tagging"支持?

mongodb - 推荐的博客数据库后端

nosql - 使用 "document-oriented DBMS"有什么好处?

java - 将数据插入数据库(mongodb)

javascript - 如何将 "callback pyramid"重构为基于 promise 的版本

java - 如何从 mongo 中找到选定的数组元素

php - 在 laravel 中访问动态数据库

MYSQL:存储事件日志的最佳方法

mongodb - 面向文档的数据库是否旨在取代关系数据库?