MongoDB平衡节点之间的连接

时间:2014-03-12 14:22:20

标签: mongodb

考虑以下情况

名为 myreplica 的MongoDB副本集 3个节点: n1 n2 & N3

3个节点具有相同的数据。

我想连接到3个节点并平衡来自我网站的读取。现在我正在使用此连接字符串:

mongodb://myuser:mypassword@n1, n2, n3/?replicaSet=myreplica&slaveOk=true

这使得两个从属节点可以处理读取,但不能处理主要节点。

如何编写连接字符串以查询3个节点中的任何一个?

来源:http://docs.mongodb.org/manual/reference/read-preference/#replica-set-read-preference-modes

更新

使用readPreference=nearest选项有效。这三个节点位于同一个局域网中。

enter image description here

1 个答案:

答案 0 :(得分:1)

实际上这根本不会影响你的阅读。您所做的只是为您的连接提供种子列表。这就是你应该在连接中做的所有事情。

为了确定您希望如何处理与阅读的互动,您需要设置一个适合您希望实现的read preference

在您的情况下,可能想要的是将其设置为secondaryPreferred,以允许从辅助节点以及主节点读取。但显然有这个优先权。

另请注意,副本集并非用作MongoDB的扩展选项,而是用于冗余故障转移

如果您要分发性能,则扩展您的硬件,或通过实施Sharding查看扩展