使用 Go mgo 持续无法访问 MongoDB Atlas 中的副本集
使用 Golang mgo 库连接到 MongoDB Atlas 副本集时,有时会出现“无法访问服务器”错误。这个问题可以通过利用 mgo DialInfo 结构中的自定义 DialServer 函数来解决。
以下代码片段演示了如何使用自定义 TLS 配置成功建立与副本集的连接:
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)
在此代码中:
或者,mgo.ParseURL() 方法可用于解析 MongoDB Atlas URI 字符串。但是,此方法目前不支持 SSL。解决方法是在解析之前从 URI 字符串中删除 ssl=true 行。
以上是如何解决使用 Go 的 mgo 库连接 MongoDB Atlas 副本集时出现'No Reachable Server”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!