Neste guia, você aprenderá como o driver Go gerencia clusters e como personalizar as configurações do cluster.
Especificar configurações
Você pode especificar configurações para seus clusters utilizando uma string de conexão ou uma estrutura ClientOptions ao criar uma nova instância do Client. Selecione a aba Connection String ou ClientOptions para ver as opções disponíveis.
A tabela a seguir descreve os parâmetros que você pode usar na string de conexão para modificar o comportamento do driver ao interagir com o cluster MongoDB :
Parâmetro
Descrição
serverSelectionTimeoutMS
Especifica a quantidade máxima de tempo que o driver esperará que um servidor esteja disponível antes de lançar um erro.
Padrão: 30 segundos
localThresholdMS
Especifica a latência máxima em milissegundos para selecionar um servidor.
Padrão: 15 milissegundos
replicaSet
Especifica o nome do conjunto de réplicas ao qual se conectar.
directConnection
Especifica se conectar diretamente a um único servidor, ignorando o conjunto de réplicas ou cluster fragmentado.
Padrão:false
loadBalanced
Especifica se o driver está se conectando ao MongoDB usando um balanceador de carga . Se definido como true, o driver pressupõe que está se conectando por meio de um balanceador de carga.
Você só poderá definir esta opção como true se atender aos seguintes requisitos:
Você especifica apenas um nome de host
Você não está conectando a um conjunto de réplicas
A opção srvMaxHosts não está definida ou tem um valor de 0
A opção directConnection não está definida ou tem um valor de false
Especifica se o driver desprioriza um servidor que retorna um erro de sobrecarga, reduzindo a probabilidade de tentar novamente no mesmo servidor sobrecarregado.
Padrão:false
maxAdaptiveRetries
Especifica o número máximo de vezes que o driver tenta novamente uma operação que falha com um erro de sobrecarga do lado do servidor.
Padrão:2
A tabela a seguir descreve vários métodos que você pode conectar à sua estrutura ClientOptions para modificar o comportamento do driver:
Método
Descrição
SetServerSelectionTimeout()
Especifica a quantidade máxima de tempo que o driver esperará que um servidor esteja disponível antes de lançar um erro.
Padrão: 30 segundos
SetLocalThreshold()
Especifica a latência máxima em milissegundos para selecionar um servidor.
Padrão: 15 milissegundos
SetReplicaSet()
Especifica o nome do conjunto de réplicas ao qual se conectar.
SetDirect()
Especifica se conectar diretamente a um único servidor, ignorando o conjunto de réplicas ou cluster fragmentado.
Padrão:false
SetLoadBalanced()
Especifica se o driver está se conectando ao MongoDB usando um balanceador de carga . Se definido como true, o driver pressupõe que está se conectando por meio de um balanceador de carga.
Você só poderá definir esta opção como true se atender aos seguintes requisitos:
Você especifica apenas um nome de host
Você não está conectando a um conjunto de réplicas
A opção srvMaxHosts não está definida ou tem um valor de 0
A opção directConnection não está definida ou tem um valor de false
Padrão:false
SetSRVServiceName()
Especifica um nome de serviço personalizado dos registros de recursos SRV que o driver recupera para construir sua lista de sementes. Para usar um nome de serviço SRV personalizado na descoberta do SRV, você deve chamar esta função antes de chamar ApplyURI().
SetEnableOverloadRetargeting()
Especifica se o driver desprioriza um servidor que retorna um erro de sobrecarga, reduzindo a probabilidade de tentar novamente no mesmo servidor sobrecarregado.
Padrão:false
SetMaxAdaptiveRetries()
Especifica o número máximo de vezes que o driver tenta novamente uma operação que falha com um erro de sobrecarga do lado do servidor.
Padrão:2
Para saber mais sobre os métodos disponíveis, consulte a seção Documentação da API.
Exemplo
Selecione a aba Connection String ou ClientOptions para ver o exemplo correspondente :
O código a seguir usa a string de conexão para configurar o tempo limite máximo de seleção do servidor para 10 segundos, e o limite local para 20 milissegundos:
const uri = "mongodb://localhost:27017/?serverSelectionTimeoutMS=10000&localThresholdMS=20"
O código a seguir cria um cliente e passa a string de conexão para o método ApplyURI():
O código abaixo cria um cliente e define as opções de cluster com um tempo limite máximo de seleção de servidor de 10 segundos e um limite local de 20 milissegundos:
clientOptions := options.Client().
ApplyURI(uri).
SetServerSelectionTimeout(10 * time.Second).
SetLocalThreshold(20 * time.Millisecond)
client, err := mongo.Connect(clientOptions)
if err != nil {
log.Fatal(err)
}
Documentação da API
Para saber mais sobre os métodos e tipos neste guia, consulte a seguinte documentação da API: