Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Driver de Kotlin Sync
/ /

Pool de Conexões

Neste guia, você aprenderá como o driver do Kotlin Sync usa os pools de conexões para gerenciar conexões com o MongoDB deployment. Você pode especificar as configurações do pool de conexões em seu aplicação para configurar esse comportamento.

Um pool de conexões é um cache de conexões de banco de dados abertas mantidas pelo driver Kotlin Sync. Quando seu aplicação solicita uma conexão com MongoDB, o driver recupera uma conexão do pool, executa operações e retorna a conexão ao pool para reutilização.

Os pools de conexões ajudam a reduzir a latência de aplicação e o número de vezes que o driver cria novas conexões.

Cada instância do MongoClient tem um pool de conexões embutida para cada servidor em sua topologia MongoDB . Se você não configurar a opção minPoolSize, os pools de conexões abrirão os soquetes sob demanda. Esses soquetes suportam operações simultâneas do MongoDB em seu aplicação.

Quando você instancia um novo MongoClient, o cliente abre dois soquetes por servidor em sua topologia MongoDB para monitorar o estado do servidor.

Por exemplo, um cliente conectado a um conjunto de réplicas de três nós abre seis soquetes de monitoramento. Se o aplicação usar a configuração padrão para maxPoolSize e consultar apenas o nó primário, poderá haver no máximo 106 soquetes abertos e 100 conexões no pool de conexões. Se a aplicação usar uma preferência de leitura para executar query dos nós secundários, poderá haver 306 conexões totais.

Por questões de eficiência, crie um cliente uma vez para cada processo e reutilize-o para todas as operações. Evite criar um novo cliente para cada solicitação, pois isso aumentará a latência.

Você pode especificar configurações para o pool de conexões usando uma string de conexão ou um objeto MongoClientSettings.

Selecione a aba Connection String ou MongoClientSettings para ver a sintaxe correspondente :

A tabela a seguir descreve as opções de pool de conexões que você pode definir em sua string de conexão:

Opção
Descrição

maxConnecting

Define o número máximo de conexões que um pool pode estabelecer simultaneamente.

Padrão: 2

maxIdleTimeMS

Define o número máximo de milissegundos que uma conexão pode permanecer inativa no pool antes de ser removida e fechada.

Padrão: 0

maxPoolSize

Define o número máximo de conexões que podem ser abertas em um pool. Se uma operação precisar de uma nova conexão enquanto o pool de conexões tiver o número máximo de conexões abertas, a operação aguardará a abertura de uma nova conexão.

Padrão: 100

minPoolSize

Define o número mínimo de conexões que podem ser abertas em um pool. O valor de minPoolSize deve ser menor que o valor de maxPoolSize.

Padrão: 0

maxLifeTimeMS

Define a quantidade máxima de tempo, em milissegundos, o driver pode continuar a usar uma pool de conexão antes de fechar a conexão. Um valor de 0 indica que não há limite superior de quanto tempo o driver pode manter uma pool de conexão aberta.

Padrão: 0

Para saber mais sobre essas opções, consulte a documentação daAPI ConnectionString.

Para especificar as configurações do pool de conexões em um objeto MongoClientSettings, encadeie o método applyToConnectionPoolSettings() ao construtor MongoClientSettings . Passe um bloco ConnectionPoolSettings.Builder como parâmetro para o método applyToConnectionPoolSettings().

A tabela a seguir descreve os métodos de configuração que você pode usar em um bloco ConnectionPoolSettings.Builder para configurar o pool de conexões:

Método
Descrição

addConnectionPoolListener()

Adiciona um ouvinte para eventos relacionados ao pool de conexões.

applyConnectionString()

Aplica as configurações de um objeto ConnectionString.

applySettings()

Usa as configurações do pool de conexões especificadas em um objeto ConnectionPoolSettings.

maintenanceFrequency()

Define a frequência para executar trabalhos de manutenção do pool de conexões .

maintenanceInitialDelay()

Define o tempo de espera antes de executar o primeiro tarefa de manutenção no pool de conexões.

maxConnectionIdleTime()

Define o tempo máximo que uma conexão pode ficar ociosa antes de ser fechada.

maxConnectionLifeTime()

Define o tempo máximo que uma conexão em pool pode ficar aberta antes de ser fechada.

maxSize()

Define o número máximo de conexões que podem ser abertas em um pool.

Padrão: 100

maxWaitTime()

Define o tempo máximo para aguardar uma conexão disponível.

Padrão: 2 minutos

minSize()

Define o número mínimo de conexões que podem ser abertas em um pool.

Padrão: 0

Para saber mais sobre esses métodos, consulte a documentação da API ConnectionPoolSettings.Builder.

O exemplo a seguir mostra como criar um pool de conexões que tenha tamanho máximo de 50 conexões.

Selecione a aba Connection String ou MongoClientSettings para ver a sintaxe correspondente:

val uri = "mongodb://<host>:<port>/?maxPoolSize=50"
val client = MongoClient.create(uri)
val mongoClient = MongoClient.create(
MongoClientSettings.builder()
.applyConnectionString(ConnectionString("mongodb://<host>:<port>/"))
.applyToConnectionPoolSettings { builder ->
builder.maxSize(50)
}
.build()
)

Para saber mais sobre como usar um pool de conexões, consulte Visão geral do pool de conexões no manual do MongoDB Server.

Voltar

Limitar o tempo de execução do servidor MongoDB

Próximo

AWS Lambda

Nesta página