Maison > développement back-end > Golang > Comment résoudre les erreurs « Aucun serveur accessible » lors de la connexion aux ensembles de réplicas MongoDB Atlas avec la bibliothèque mgo de Go ?

Comment résoudre les erreurs « Aucun serveur accessible » lors de la connexion aux ensembles de réplicas MongoDB Atlas avec la bibliothèque mgo de Go ?

DDD
Libérer: 2024-11-28 19:38:15
original
264 Les gens l'ont consulté

How to Resolve

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)
Copier après la connexion

Dans ce code :

  • tlsConfig est initialisé avec tout TLS nécessaire configuration.
  • dialInfo est configuré avec les adresses des membres du jeu de réplicas, le nom de la base de données, le nom d'utilisateur et le mot de passe.
  • DialServer est personnalisé pour établir une connexion protégée par TLS à chaque serveur.
  • Enfin, mgo.DialWithInfo établit une connexion avec le jeu de répliques à l'aide du cadran fourni informations.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal