Connectez-vous au jeu de réplicas à l'aide de mgo
-
21-12-2019 - |
Question
j'utilise mtools
pour lancer un jeu de répliques avec 3 nœuds (mlaunch --replicaset
) sur les ports 27017, 27018 et 27019.
Cependant, j'ai du mal à me connecter au jeu de répliques à l'aide de Dial
du paquet mgo.L'extrait de code ci-dessous panique avec le message no reachable servers
:
type Person struct {
Name string `bson:"name"`
Age int `bson:"age"`
}
func main() {
session, err := mgo.Dial("localhost:27017,localhost:27018,localhost:27019")
if err != nil {
panic(err)
}
c := session.DB("mydb").C("testCollection")
c.Insert(&Person{Name: "Foo", Age: 20})
}
Comment se connecter exactement à un jeu de réplicas à l’aide du package mgo ?
La solution
Tu dois courir rs.initiate()
pour terminer la configuration initiale du jeu de réplicas.Cela lancera un jeu de réplicas à un membre.Vous courez ensuite rs.add()
avec les paramètres corrects pour vos hôtes afin de mettre les autres membres en ligne.
Voici un tutoriel sur le processus :
http://docs.mongodb.org/manual/tutorial/deploy-replica-set/
Généralement, c'est une bonne idée que chaque fois que vous rencontrez des problèmes pour exécuter quelque chose sur mongodb à partir du code, essayez de vous connecter et de faire la même chose via le shell mongo - cela peut vous faire gagner beaucoup de temps et d'efforts.
Pour redémarrer ce processus à l'aide de mlaunch, vous devez l'exécuter de cette façon :
mlaunch --init --replicaset
Cela initialisera et lancera un jeu de répliques à 3 nœuds nommé "replset".