невозможно подключиться к производственному пн go экземпляр: ошибка выбора сервера: время ожидания выбора сервера - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь подключиться к 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

Я не уверен, почему он закрывается или не может подключиться

...