Persistent No Reachable Server to Replika Set in MongoDB Atlas with Go mgo
Apabila menyambung ke set replika Atlas MongoDB menggunakan perpustakaan mgo Golang , ralat "tiada pelayan boleh dicapai" kadangkala boleh berlaku. Isu ini boleh diselesaikan dengan memanfaatkan fungsi DialServer tersuai dalam struct DialInfo mgo.
Coretan kod berikut menunjukkan cara untuk mewujudkan sambungan yang berjaya ke set replika menggunakan konfigurasi TLS tersuai:
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)
Dalam kod ini:
Sebagai alternatif, kaedah mgo.ParseURL() boleh digunakan untuk menghuraikan rentetan URI Atlas MongoDB. Walau bagaimanapun, SSL pada masa ini tidak disokong oleh kaedah ini. Penyelesaian adalah dengan mengalih keluar baris ssl=true daripada rentetan URI sebelum menghuraikan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Tiada Pelayan Boleh Dicapai\' Semasa Menyambung ke Set Replika Atlas MongoDB dengan Perpustakaan mgo Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!