Serveur persistant non accessible à répliquer dans MongoDB Atlas avec Go mgo
Lors de la connexion à un jeu de répliques MongoDB Atlas à l'aide de la bibliothèque Golang mgo , une erreur « serveur non accessible » peut parfois survenir. Ce problème peut être résolu en exploitant une fonction DialServer personnalisée dans la structure mgo DialInfo.
L'extrait de code suivant montre comment établir une connexion réussie à un jeu de réplicas à l'aide de configurations TLS personnalisées :
import ( "gopkg.in/mgo.v2" "crypto/tls" "net" ) tlsConfig := &tls.Config{} dialInfo := &mgo.DialInfo{ Addrs: []string{"prefix1.mongodb.net:27017", "prefix2.mongodb.net:27017", "prefix3.mongodb.net:27017"}, Database: "authDatabaseName", Username: "user", Password: "pass", } dialInfo.DialServer = func(addr *mgo.ServerAddr) (net.Conn, error) { conn, err := tls.Dial("tcp", addr.String(), tlsConfig) return conn, err } session, err := mgo.DialWithInfo(dialInfo)
Dans ce code :
Alternativement, la méthode mgo.ParseURL() peut être utilisée pour analyser la chaîne URI MongoDB Atlas. Cependant, SSL n'est actuellement pas pris en charge par cette méthode. Une solution de contournement consiste à supprimer la ligne ssl=true de la chaîne URI avant l'analyse.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!