这里的文档说三: http : //docs.mongodb.org/manual/tutorial/deploy-replica-set/
“副本集需要三个不同的系统…”
而这里的文档说了两个: http : //docs.mongodb.org/manual/core/replication/
“大多数副本集包含两个或更多的mongod实例…”
有人知道哪一个是正确的?
如果你愿意的话,你实际上可以运行一个成员“set”。
不过,3名成员(或更高的单数)确实是最好的。 副本集只有在大部分集合不可用的情况下才会被读取,所以如果您失去了两个成员集中的成员,则剩下的成员变成只读。
你可以运行两个正式成员加上一个“仅投票”成员(称为仲裁者)。 这是副本集合中最小的合理安全选项。
这基本上是一个措辞问题,因为本教程中的要求不是关于副本集的一般说明,而是它们与本教程有关。 部署副本集的要求通常是1或更多,大多数有2个或更多,但是您链接到的教程专门用于部署3个成员集:
本教程介绍了如何从三个现有的MongoDB实例创build三个成员的副本集
因此,教程的要求是该集合有3个成员。 尽pipe如此,这两个语句有点混乱,所以我提交了一个pull请求 (编辑:pull请求现在已经被合并)来清理它。
您可以将单个mongod节点configuration为副本集的一部分,但严格来说,这不会是“集”。 实际上,由于复制使用比独立的mongod更多的资源(主要是因为oplog ),所以除非将其他成员添加到集合中,或者如果需要oplog由于其他原因(如备份)。