Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Visão geral do pool de conexões

Nesta página

  • O que é um pool de conexões?
  • Criar e usar um pool de conexões
  • Pool de conexões de cluster fragmentado
  • Configurações do pool de conexões

Este documento descreve como usar um pool de conexões para gerenciar conexões entre aplicativos e instâncias do MongoDB.

Um pool de conexões é um cache de conexões de banco de dados abertas e prontas para uso mantidas pelo driver. Seu aplicativo pode obter conexões do pool, executar operações e retornar conexões ao pool sem problemas. Os pools de conexões são seguros para threads.

Um pool de conexões ajuda a reduzir a latência de aplicativos e o número de vezes que novas conexões são criadas.

Um pool de conexões cria conexões na inicialização. Os aplicativos não precisam retornar conexões manualmente ao pool. Em vez disso, as conexões retornam ao pool automaticamente.

Algumas conexões são ativas e, outras, inativas, mas disponíveis. Se seu aplicativo solicitar uma conexão e houver uma conexão disponível no pool, uma nova conexão não precisará ser criada.

A maioria dos drivers fornece um objeto do tipo MongoClient.

Use uma instância MongoClient por aplicativo, a menos que o aplicativo esteja se conectando a vários clusters separados. Cada instância MongoClient gerencia seu próprio pool de conexões com o cluster ou nó do MongoDB especificado quando o MongoClient é criado. Os objetos MongoClient são de thread segura na maioria dos drivers.

Observação

Armazene sua instância do MongoClient em um local globalmente acessível por seu aplicativo.

Para usar um pool de conexões com LDAP, consulte Comportamento do pool de conexões LDAP.

mongos roteadores têm pools de conexão para cada nó no cluster. A disponibilidade de conexões com nós individuais dentro de um cluster fragmentado afeta a latência. As operações devem aguardar o estabelecimento de uma conexão.

Você pode especificar as configurações do pool de conexões nestes locais:

  • O URI do MongoDB

  • Instância MongoClient do seu aplicativo

  • Os arquivos de configuração da estrutura do seu aplicativo

Contexto
Descrição

A maioria dos drivers nunca expira, por padrão. Algumas versões dos drivers Java (por exemplo, versão 3.7) assumem como padrão 10.

Padrão: 0 para a maioria dos drivers. Consulte a documentação de seu driver.

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

maxConnecting é compatível com todos os drivers, exceto o driver Rust.

Aumentar o valor de maxConnecting permite que o cliente estabeleça conexão com o servidor mais rápido, mas aumenta a chance de tempestades de conexão. Se o valor de maxConnecting for muito baixo, o pool de conexões poderá sofrer fortes limitações e aumentar a latência da parte final para os clientes que estiverem checando as conexões.

Padrão: 2

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

Padrão: Consulte a documentação do driver.

Número máximo de conexões abertas no pool. Quando o pool de conexões atinge o número máximo de conexões, as novas conexões aguardam até o valor de waitQueueTimeoutMS.

Padrão: 100

Número mínimo de conexões abertas no pool. O valor de minPoolSize deve ser menor que o valor de maxPoolSize.

Padrão: 0

O número máximo de conexões de saída que cada pool de conexões do TaskExecutor pode abrir para qualquer instância específica do mongod.

Padrão: 2 64 - 1

O parâmetro só se aplica a sistemas fragmentados.

Substituição opcional de ShardingTaskExecutorPoolMaxSize para definir o número máximo de conexões de saída que cada pool de conexões do TaskExecutor pode abrir para um servidor de configuração.

Quando definido como:

  • -1, ShardingTaskExecutorPoolMaxSize é usado. Este é o padrão.

  • um valor inteiro maior que -1, substitui o número máximo de conexões de saída que cada pool de conexões do TaskExecutor pode abrir para um servidor de configuração.

O parâmetro só se aplica a sistemas fragmentados.

Padrão: -1

Novidades na versão 6.0.

Número mínimo de conexões de saída que cada pool de conexões TaskExecutor pode abrir para qualquer instância mongod específica.

Padrão: 1

O parâmetro só se aplica a sistemas fragmentados.

Substituição opcional para ShardingTaskExecutorPoolMinSize definir o número mínimo de conexões de saída que cada pool de conexões TaskExecutor pode abrir para um servidor de configuração.

Quando definido como:

  • -1, ShardingTaskExecutorPoolMinSize é usado. Este é o padrão.

  • um valor inteiro maior que -1, substitui o número mínimo de conexões de saída que cada pool de conexão do TaskExecutor pode abrir para um servidor de configuração.

O parâmetro só se aplica a sistemas fragmentados.

Padrão: -1

Novidades na versão 6.0.

Número de milissegundos para aguardar antes do tempo limite de uma conexão TCP.

Não use socketTimeoutMS para evitar operações de servidor de longa execução.

A definição de tempos limite de soquete baixo pode resultar em operações com erro antes que o servidor responda.

Padrão: 0, o que significa que não há tempo limite.

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

Padrão: 0

Voltar

Desempenho