Mongos复制品

时间:2012-03-15 15:41:19

标签: php mongodb

我将mongodb环境从复制集转换为通过mongos复制集进行分片。

我有3个重复(A,B,C),我切换到S1(A,B); S2(C,D),其中mongoS在A,B,C,D上运行。

当我连接到旧系统时,我按照以下方式连接

new Mongo("mongodb://A,B,C", array("replicaSet" => "repset-name"));

现在我尝试使用mongoS发送内部服务器错误

new Mongo("mongodb://A,B,C,D", array("replicaSet" => "repset-name"));

如果我摆脱了“replicaSet”选项,它会再次运作。

new Mongo("mongodb://A,B,C,D")

我想知道mongoS现在是否平衡了碎片中的rep-sets之间的读取(例如A和B之间的S1平衡)而没有设置“replicaSet”选项?

顺便说一句,pymongo以相同的方式对pymongo.errors.AutoReconnect做出反应“没有与主机名相关联的地址”。

THX

1 个答案:

答案 0 :(得分:2)

正确,一旦你进行了分片,你应该将你的驱动程序连接到mongos,就像它是一台服务器一样。 Mongos现在负责在群集周围的初级和辅助之间分发读写。如果您希望mongos将读取分发给辅助节点,请将slaveOk设置为True以进行读取。