Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyelesaikan Ralat \'Tiada Pelayan Boleh Dicapai\' Semasa Menyambung ke Set Replika Atlas MongoDB dengan Perpustakaan mgo Go?

Bagaimana untuk Menyelesaikan Ralat \'Tiada Pelayan Boleh Dicapai\' Semasa Menyambung ke Set Replika Atlas MongoDB dengan Perpustakaan mgo Go?

DDD
Lepaskan: 2024-11-28 19:38:15
asal
262 orang telah melayarinya

How to Resolve

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)
Salin selepas log masuk

Dalam kod ini:

  • tlsConfig dimulakan dengan sebarang keperluan Konfigurasi TLS.
  • dialInfo dikonfigurasikan dengan set alamat ahli replika, nama pangkalan data, nama pengguna dan kata laluan.
  • DialServer disesuaikan untuk menyediakan sambungan yang dilindungi TLS kepada setiap pelayan.
  • Akhir sekali, mgo.DialWithInfo mewujudkan sambungan ke set replika menggunakan dail yang disediakan maklumat.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan