Heim > Backend-Entwicklung > Golang > Wie kann ich von unterwegs aus eine Verbindung zu MongoDB Atlas herstellen: Timeout- und Server-Erreichbarkeitsprobleme lösen?

Wie kann ich von unterwegs aus eine Verbindung zu MongoDB Atlas herstellen: Timeout- und Server-Erreichbarkeitsprobleme lösen?

Mary-Kate Olsen
Freigeben: 2025-01-03 07:44:40
Original
905 Leute haben es durchsucht

How to Connect to MongoDB Atlas from Go: Solving Timeout and Server Reachability Issues?

Herstellen einer MongoDB Atlas-Verbindung von Go mithilfe einer neuen URL-Struktur (MongoDB 3.6)

Bei Ihren vorherigen Versuchen, eine Verbindung zu MongoDB Atlas von Go aus mithilfe von mgo herzustellen, sind Probleme mit aufgetreten das DialInfo-Timeout und die Servererreichbarkeit. Lassen Sie uns diese Probleme untersuchen und Lösungen bereitstellen:

Null-Timeout

Die Standard-DialInfo hat ein Null-Timeout, was dazu führt, dass der Verbindungsaufbauprozess auf unbestimmte Zeit blockiert wird. Um dieses Problem zu beheben, können Sie explizit eine Zeitüberschreitung festlegen, indem Sie Folgendes verwenden:

dialInfo.Timeout = time.Duration(30)
session, err := mgo.DialWithInfo(dialInfo)
Nach dem Login kopieren

Nicht erreichbare Server

Ihre Besorgnis über nicht erreichbare Server rührt von der mangelnden Unterstützung von mgo für das SRV-Verbindungszeichenfolgen-URI-Format (MongoDB v3 .4). Um diese Einschränkung zu beheben, können Sie das Nicht-Srv-Verbindungs-URI-Format verwenden:

mongoURI = "mongodb+srv://admin:password@my-atlas-cluster-01.mongodb.net:27017/dbname?ssl=true&retryWrites=true"
Nach dem Login kopieren

Alternativer Go-Treiber für SRV

Wenn Sie SRV lieber in Ihrem Verbindungs-URI verwenden möchten, sollten Sie die Verwendung von in Betracht ziehen Mongo-Go-Fahrer. Hier ist ein Beispiel:

mongoURI := "mongodb+srv://admin:password@my-atlas-cluster-01.mongodb.net/dbname?ssl=true&retryWrites=true"

client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI))
if err != nil {
    log.Fatal(err)
}
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err = client.Connect(ctx)
defer client.Disconnect(ctx)

if err != nil {
    log.Fatal(err)
}
database := client.Database("go")
collection := database.Collection("atlas")
Nach dem Login kopieren

Beachten Sie, dass dieser Code mit der aktuellen Version von mongo-go-driver (v1.0.0) kompatibel ist.

Das obige ist der detaillierte Inhalt vonWie kann ich von unterwegs aus eine Verbindung zu MongoDB Atlas herstellen: Timeout- und Server-Erreichbarkeitsprobleme lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage