Visão geral
Neste guia, você aprenderá como o PyMongo usa pools de conexões para gerenciar conexões com uma MongoDB deployment e como definir as configurações do pool de conexões em seu aplicação.
Um pool de conexões é um cache de conexões de banco de dados abertas mantidas pelo PyMongo. Quando seu aplicação solicita uma conexão com o MongoDB, o PyMongo obtém uma conexão do pool sem problemas, 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 novas conexões são criadas pelo PyMongo.
Configuração de pools de conexões
Você pode especificar as seguintes configurações do pool de conexões no seu objeto MongoClient ou em seu URI de conexão:
Contexto | Descrição |
|---|---|
| O tempo que o PyMongo espera ao estabelecer uma nova conexão antes de atingir o tempo limite. |
| O número máximo de conexões que cada pool pode estabelecer simultaneamente. Se esse limite for atingido, outras solicitações aguardarão até que uma conexão seja estabelecida ou outra conexão em uso seja verificada novamente no pool. |
| O tempo máximo que uma conexão pode permanecer inativa no pool. Quando uma conexão excede esse limite, o PyMongo fecha a conexão e a remove do pool. Defina esse valor como maior que o período ocioso esperado do seu aplicativo, mas menor que o tempo limite de conexão do firewall ou do proxy para evitar desconexões inesperadas. |
| O número máximo de conexões simultâneas que o pool mantém. Se o tamanho máximo do pool for atingido, solicitações adicionais aguardarão até que uma conexão fique disponível. |
| O número mínimo de conexões simultâneas que o pool mantém. Se o número de conexões abertas cair abaixo desse valor devido a erros de rede, o PyMongo tentará criar novas conexões para manter esse mínimo. |
| O período durante o qual o PyMongo aguarda uma resposta do servidor antes do tempo limite. |
| Por quanto tempo um thread aguarda uma conexão ficar disponível no pool de conexões antes de atingir o tempo limite. |
O código a seguir cria um cliente com um tamanho máximo do pool de conexões de 50 usando o parâmetro maxPoolSize. Selecione a aba Synchronous ou Asynchronous para ver o código correspondente:
client = MongoClient(host, port, maxPoolSize=50)
client = AsyncMongoClient(host, port, maxPoolSize=50)
O código a seguir cria um cliente com a mesma configuração do exemplo anterior, mas usa um URI de conexão:
client = MongoClient(host, port, maxPoolSize=50)
client = AsyncMongoClient(host, port, maxPoolSize=50)
Informações adicionais
Para saber mais sobre pool de conexões, consulte Visão geral do pool de conexões no manual do MongoDB Server .
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API: