Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Pool de Conexões

Neste guia, você aprenderá como o driver Scala usa pools de conexões para gerenciar conexões com uma implantação do MongoDB e como você pode configurar as definições do pool de conexões em seu aplicativo.

Um pool de conexões é um cache de conexões de banco de dados abertas mantidas pelo driver Scala. Seu aplicativo recupera uma conexão do pool, executa operações e retorna a conexão para reutilização.

O uso de um pool de conexões reduz a latência e minimiza o número de vezes que o driver cria novas conexões.

Cada instância MongoClient tem um pool de conexões integrado para cada servidor em sua topologia do MongoDB. Os pools de conexões abrem soquetes sob demanda para oferecer suporte a operações simultâneas do MongoDB em seu aplicativo.

A opção maxPoolSize define o tamanho máximo de cada pool de conexões, cujo padrão é 100. Se o número de conexões em uso com um servidor atingir o valor de maxPoolSize, a próxima solicitação para esse servidor aguardará até que uma conexão fique disponível.

Cada instância MongoClient abre mais dois soquetes por servidor em sua topologia MongoDB para monitorar o estado do servidor.

Você pode configurar um 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 string de conexão para configurar um pool de conexões:

Opção
Descrição

maxConnecting

O número máximo de conexões que o driver pode estabelecer simultaneamente.

Padrão: 2

maxIdleTimeMS

O número máximo de milissegundos que uma conexão pode permanecer inativa no pool antes que o driver a feche. Um valor de 0 indica nenhum limite.

Padrão: 0

maxPoolSize

O número máximo de conexões que o driver pode ter abertas ao mesmo tempo em um único pool de conexões.

Padrão: 100

minPoolSize

O número mínimo de conexões que o driver mantém em um único pool de conexões. Este valor deve ser menor que maxPoolSize.

Padrão: 0

waitQueueTimeoutMS (obsoleto)

Esta opção está obsoleta. Em vez disso, use timeoutMS. Para saber mais, consulte Limitar o tempo de execução do servidor.

Tempo máximo de espera, em milissegundos, que uma operação pode esperar que uma conexão fique disponível. Um valor de 0 significa que não há limite.

Padrão: 120000

maxLifeTimeMS

O número máximo de milissegundos que uma conexão pode permanecer aberta. Um valor de 0 indica nenhum limite.

Padrão: 0

Para obter mais informações, consulte a documentação da API ConnectionString.

Encadeie o método applyToConnectionPoolSettings() à classe MongoClientSettings.Builder para configurar um pool de conexões. A tabela a seguir descreve os métodos ConnectionPoolSettings.Builder que você pode encadear para configurar o pool:

Método
Descrição

addConnectionPoolListener()

Adiciona um ouvinte para eventos do pool de conexões.

applyConnectionString()

Aplica as configurações de um objeto ConnectionString.

applySettings()

Aplica as configurações de um objeto ConnectionPoolSettings.

connectionPoolListenerList()

Define uma lista de ouvintes do pool de conexões.

maintenanceFrequency()

Define a frequência da tarefa periódica que gerencia conexões ociosas e expiradas.

maintenanceInitialDelay()

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

maxConnectionIdleTime()

Define o tempo máximo de inatividade para uma conexão agrupada. Um valor de 0 indica nenhum limite.

maxConnectionLifeTime()

Define o tempo de vida máximo de uma conexão agrupada. Um valor de 0 indica nenhum limite.

maxConnecting()

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

Padrão: 2

maxSize()

Define o número máximo de conexões permitidas no 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 o driver mantém no pool.

Padrão: 0

Observação

As configurações maxSize() e minSize() aplicam-se a cada servidor em sua implantação individualmente, não ao pool como um todo.

Para saber mais, consulte a documentação da API ConnectionPoolSettings.Builder.

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

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

val mongoClient = MongoClient("mongodb://<host>:<port>/?maxPoolSize=50")
val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString("<connection string>"))
.applyToConnectionPoolSettings(
(builder: ConnectionPoolSettings.Builder) => builder.maxSize(50))
.build()
val mongoClientWithSettings = MongoClient(settings)

Para obter mais informações sobre como usar um pool de conexões, consulte a documentação do Pool de conexões no manual do servidor.

Para saber mais sobre os tipos e métodos discutidos neste guia, consulte a seguinte documentação da API: