Especificar configurações do MongoClient
Nesta página
Visão geral
Neste guia, você aprenderá sobre as diferentes configurações para controlar o comportamento do seu MongoClient
.
As seções a seguir descrevem as configurações comumente usadas:
Configurações do MongoClient
Você pode controlar o comportamento do seu criando MongoClient
e passando um objeto MongoClientSettings para o método MongoClient.create()
Para criar um objeto MongoClientSettings
, utilize o método MongoClientSettings.builder()
e métodos de cadeia para especificar suas configurações. Após encadeá-los, use o método build()
para criar o objeto MongoClientSettings
.
A tabela a seguir descreve todos os métodos que você pode criar para modificar seu comportamento de conexão:
Método | Descrição |
---|---|
| Adiciona um ouvinte paraeventos de comando . |
| Define o nome lógico do aplicativo utilizando o |
| Aplica as configurações do |
| Aplica o |
| Aplica o |
| Aplica o |
| Aplica o |
| Aplica o |
| Define as configurações de criptografia automática. |
| Define o registro do codec. Define o registro do codec. |
| Define os ouvintes de comando. |
| Define os compressores a serem usados para comprimir mensagens para o servidor. |
| Define a credencial. |
| Define a preocupação de leitura. |
| Define a preferência de leitura. |
| Se o driver deve tentar ler novamente se ocorrer um erro de rede. |
| Se o driver deve tentar novamente as gravações se ocorrer um erro de rede. |
| Define a API do servidor a ser usada ao enviar comandos para o servidor. |
| Define a fábrica para utilizar para criar um |
| Define a representação UUID para utilizar ao codificar instâncias de UUID e decodificando valores binários BSON com subtipo de 3. |
| Define a preocupação de gravação. |
Exemplo
Este exemplo demonstra a especificação de um ConnectionString
:
val mongoClient = MongoClient.create( MongoClientSettings.builder() .applyConnectionString(ConnectionString("<your connection string>")) .build() )
Dica
Cada configuração possui um método applyConnectionString()
. Eles raramente são necessários nas configurações, portanto, você deve usar esse método conforme mostrado no exemplo anterior.
Observação
Ordem de corrente
Algumas opções no mapa de configurações para uma opção de cadeia de conexão. Se você especificar as mesmas opções em suas configurações e na cadeia de conexão, a ordem em que você as encadear determinará qual opção o driver usará. O driver usa a última configuração lida.
Por exemplo, esse trecho contém configurações com os seguintes horários para o driver se conectar a um soquete disponível:
A cadeia de conexão especifica dentro
2 SECONDS
As configurações de soquete especificam dentro de
5 SECONDS
val mongoClient = MongoClient.create( MongoClientSettings.builder() .applyConnectionString(ConnectionString("mongodb+srv:/<db_username>:<db_password>@<hostname>:<port>?connectTimeoutMS(2000)")) .applyToSocketSettings{ builder -> builder.connectTimeout(5, TimeUnit.SECONDS) } .build() )
Como o driver lê as opções de configurações de soquete por último, o driver espera se conectar a um soquete disponível dentro de 5 SECONDS
antes de atingir o tempo limite.
Dica
Registre suas Configurações
Para registrar as configurações de instância do MongoClient
, defina o org.mongodb.driver.client
denominado logger para o nível INFO
.
Para saber mais sobre como registrar com o MongoDB Kotlin Driver, consulte o Guia de registro .
Configurações de clusters
Encadeie o método applyToClusterSettings() para modificar o comportamento do driver ao interagir com o cluster do MongoDB.
A tabela a seguir descreve todos os métodos que você pode conectar às suas configurações para modificar o comportamento do driver:
Método | Descrição | |||||
---|---|---|---|---|---|---|
| Adiciona um ouvinte para eventos relacionados ao cluster. | |||||
| Usa as configurações de um objeto | |||||
| Utiliza as configurações de cluster especificadas em um objeto de | |||||
| Define todas as localizações especificadas de um servidor mongo. | |||||
| Define a quantidade de tempo que uma viagem de ida e volta do servidor pode levar e ainda ser elegível para a seleção do servidor. | |||||
| Define como se conectar a um MongoDB Server. | |||||
| Define o tipo de cluster necessário para o cluster. | |||||
| Define o nome do conjunto de réplicas necessário para o cluster. | |||||
| Define o tempo máximo para selecionar um nó primário antes de lançar uma exceção de tempo limite. | |||||
| Adiciona um seletor de servidor para aplicar antes da seleção do servidor. | |||||
| Define o nome do host a ser usado para procurar um registro DNS SRV para localizar os hosts MongoDB. Ao configurar o Se quiser ativar o processamento de registros TXT, será necessário especificar o host SRV na cadeia de conexão usando o método
| |||||
| Sets the maximum number of hosts the driver can connect to when using
the DNS seedlist (SRV) connection protocol, identified by the
mongodb+srv connection string prefix.Throws an exception if you are not using the SRV connection protocol. |
Exemplo
Esse exemplo especifica que o driver deve se conectar diretamente a um servidor, independentemente do tipo de cluster MongoDB do qual ele faz parte:
val mongoClient = MongoClient.create( MongoClientSettings.builder() .applyToClusterSettings{ builder -> builder.mode(ClusterConnectionMode.SINGLE) } .build() )
Dica
Isto é análogo ao parâmetro directConnection
que você pode especificar em seu URI de conexão. Consulte Opções de Conexão para obter mais informações.
Configurações do soquete
Encadeie o applyToSocketSettings() método para modificar o comportamento do driver ao se conectar e se comunicar com o servidor MongoDB.
A tabela a seguir descreve todos os métodos que você pode conectar às suas configurações para modificar o comportamento do driver:
Método | Descrição |
---|---|
| Usa as configurações de um objeto |
| Utiliza as definições de terminais especificadas num objeto |
| Aplica o bloco |
| Define o tempo máximo para se conectar a um soquete disponível antes de lançar uma exceção de tempo limite. |
| Define o tempo máximo para ler em um soquete disponível antes de lançar uma exceção de tempo limite. |
| Define o tamanho do buffer do soquete ao receber. |
| Define o tamanho do buffer do soquete ao enviar. |
Exemplo
Este exemplo especifica o seguinte comportamento do driver em um soquete do MongoDB:
Para se conectar a um soquete disponível em
10 SECONDS
Para ler um soquete disponível dentro
15 SECONDS
val mongoClient = MongoClient.create( MongoClientSettings.builder() .applyConnectionString(ConnectionString("<your connection string>")) .applyToSocketSettings{ builder -> builder .connectTimeout(10, TimeUnit.SECONDS) .readTimeout(15, TimeUnit.SECONDS) } .build() )
Configurações do Pool de Conexões
Encadeie o método applyToConnectionPoolSettings() para modificar a maneira como o driver gerencia seu pool de conexões.
A tabela a seguir descreve todos os métodos que você pode conectar às suas configurações para modificar o comportamento do driver:
Método | Descrição |
---|---|
| Adiciona um ouvinte para eventos relacionados ao pool de conexões. |
| Usa as configurações de um objeto |
| Usa as configurações do pool de conexões especificadas em um objeto |
| Define a frequência para executar uma tarefa de manutenção. |
| Define o tempo de espera antes de executar o primeiro trabalho de manutenção. |
| Define o tempo máximo que uma conexão pode ficar ociosa antes de ser fechada. |
| Define o tempo máximo que uma conexão em pool pode ficar ativa antes de ser fechada. |
| Define o tempo máximo para aguardar uma conexão disponível. |
| Define a quantidade máxima de conexões associadas a um pool de conexões. |
| Define a quantidade mínima de conexões associadas a um pool de conexões. |
Observação
Estas configurações do maxSize
e minSize
se aplicam a cada servidor no cluster ao qual você conecta o driver.
Por exemplo, suponha que você conecte o driver a um cluster com três servidores mongos
. Isto significa que pode haver no máximo maxSize
conexões e pelo menos minSize
conexões para cada servidor mongos
.
Exemplo
Este exemplo especifica o seguinte comportamento do driver em um pool de tipos de Connection
:
O thread que aguardará no máximo
10 SECONDS
por uma conexão disponívelTer no máximo
200
conexões associadas ao grupo
val mongoClient = MongoClient.create( MongoClientSettings.builder() .applyConnectionString(ConnectionString("<your connection string>")) .applyToConnectionPoolSettings{ builder -> builder .maxWaitTime(10, TimeUnit.SECONDS) .maxSize(200) } .build() )
Configurações do Servidor
Encadeie o applyToServerSettings() método para modificar o comportamento do driver ao monitorar cada servidor MongoDB.
A tabela a seguir descreve todos os métodos que você pode conectar às suas configurações para modificar o comportamento do driver:
Método | Descrição |
---|---|
| Adiciona um ouvinte para eventos relacionados ao servidor. |
| Adiciona um ouvinte para eventos relacionados ao monitoramento do servidor. |
| Usa as configurações de um objeto |
| Utiliza as configurações do servidor especificadas em um objeto |
| Define o intervalo para um monitor de cluster tentar alcançar um servidor. |
| Define o intervalo mínimo para verificações de monitoramento do servidor. |
| Especifica qual protocolo de monitoramento de servidor o driver usa. |
Exemplo
Este exemplo especifica o seguinte comportamento do driver em um MongoDB Server:
O intervalo mínimo para verificações de monitoramento do servidor deve ser de pelo menos
700 MILLISECONDS
O monitor de cluster para tentar alcançar um servidor a cada
15 SECONDS
val mongoClient = MongoClient.create( MongoClientSettings.builder() .applyConnectionString(ConnectionString("<your connection string>")) .applyToServerSettings{ builder -> builder .minHeartbeatFrequency(700, TimeUnit.MILLISECONDS) .heartbeatFrequency(15, TimeUnit.SECONDS) } .build() )
Configurações TLS/SSL
Encadeie o método applyToSslSettings() para modificar o comportamento do driver ao usar TLS/SSL para proteger uma conexão entre o aplicativo e o MongoDB.
A tabela a seguir descreve todos os métodos que você pode conectar às suas configurações para modificar o comportamento do driver:
Método | Descrição |
---|---|
| Usa as configurações de um objeto |
| Utiliza as configurações TLS/SSL especificadas em um objeto |
| Define o |
| Se o TLS/SSL deve ser habilitado. (Você deve habilitar isso para Atlas clusters.) |
| Se permitir ou não uma incompatibilidade entre o nome de host do servidor e o nome de host especificado pelo certificado TLS. |
Exemplo
Este exemplo especifica para o driver habilitar TLS/SSL ao conectar ao MongoDB:
val mongoClient = MongoClient.create( MongoClientSettings.builder() .applyConnectionString(ConnectionString("<your connection string>")) .applyToSslSettings{ builder -> builder.enabled(true) } .build() )