Я пытаюсь подключиться к mon go в Compose с помощью следующего кода подключения:
func buildClient(url, env string) (*mongoDriver.Client, error) {
tls := &tls.Config{
InsecureSkipVerify: true,
}
options := options.Client().ApplyURI(url)
if env == "production" {
options.SetTLSConfig(tls)
}
client, err := mongoDriver.NewClient(options)
if err != nil {
return nil, err
}
err = client.Connect(context.Background())
if err != nil {
return nil, err
}
err = client.Ping(context.Background(), nil)
if err != nil {
return nil, err
}
return client, nil
}
подключение происходит без ошибки, но в документации сказано, что Connect не блокирует обнаружение сервера и пинговать сервис. При попытке пропинговать сервис, похоже, что соединение закрыто:
server selection error: server selection timeout
current topology: Type: ReplicaSetNoPrimary
Servers:
Addr: candidate.1.mongolayer.com:12345, Type: Unknown, State: Connected, Average RTT: 0, Last error: connection(candidate.1.mongolayer.com:12345[-117]) connection is closed
Addr: candidate.2.mongolayer.com:23456, Type: Unknown, State: Connected, Average RTT: 0, Last error: connection(candidate.2.mongolayer.com:23456[-107]) connection is closed
Я не уверен, почему он закрывается или не может подключиться