2012-03-15 3 views
0

J'ai basculé mon environnement mongodb des ensembles de réplication à sharding avec des ensembles de réplication via mongos. J'ai eu 3 rep-ensembles (A, B, C) que j'ai commuté à S1 (A, B); S2 (C, D) avec mongoS fonctionnant sur A, B, C, D.Mongos réplicaset

Quand je connecte à mon ancien système, je me suis connecté comme suit

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

Maintenant j'ai essayé de la même chose avec Mongos Wich génère une erreur de serveur interal

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

Si je me débarrasser de l'option "replicaSet", cela fonctionne à nouveau.

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

Je me demandais si Mongos équilibre maintenant les lectures entre les rep ensembles dans le tesson (par exemple l'équilibre S1 entre A et B) sans l'ensemble d'options « replicaSet »? Par ailleurs, pymongo réagit de la même manière avec un pymongo.errors.AutoReconnect "Aucune adresse associée à hostname".

Thx

+0

Définissez slaveOk sur true pour distribuer les lectures aux secondaires – CesarTrigo

Répondre

2

Corriger, une fois que vous avez fragmentées, vous devez connecter votre pilote aux mongos comme si elle était un seul serveur. Mongos est maintenant responsable de la distribution des lectures et des écritures parmi les primaires et les secondaires autour de votre cluster. Définissez slaveOk sur True pour les lectures si vous souhaitez que mongos distribue des lectures aux secondaires.

Questions connexes