2012-03-15 47 views
0

我将mongodb环境从复制集切换到通过mongos使用复制集进行分片。我有3个rep-set(A,B,C),我切换到S1(A,B); S2(C,D),mongoS在A,B,C,D上运行。如果我摆脱Mongos replicaset

当我连接到我的旧制度,我连为跟着

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

现在我试图在同一与mongoS至极抛出INTERAL服务器错误

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

的“副本集”选项,它再次工作。

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

我想知道没有“replicaSet”选项集如果mongoS现在平衡在碎片(例如S1 A和B之间的平衡)的REP-组之间的读出?

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

THX

+0

将slaveOk设置为true以将读取分配给辅助节点 – CesarTrigo 2014-11-15 16:44:19

回答

2

正确的,一旦你分片,你应该将驱动程序连接到mongos就好像它是一台服务器。 Mongos现在负责在集群的初级和次级中分配读写操作。如果要mongos将读取分配给辅助节点,请将slaveOk设置为True。