Visão geral
Neste guia, você aprenderá como o driver .NET/C# usa pools de conexões para gerenciar conexões com um 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 driver .NET/C#. Quando seu aplicação solicita uma conexão com o MongoDB, o driver .NET/C# 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 driver .NET/C#. O diagrama a seguir ilustra uma visão de alto nível de como o MongoClient gerencia um pool de conexões:
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 |
|---|---|
| A quantidade máxima de tempo que o driver .NET/C# aguarda 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 driver .NET/C# fecha a conexão e a remove do pool. |
| O tempo máximo que uma conexão pode ser agrupada. Quando uma conexão excede esse limite, o driver .NET/C# fecha a conexão e a remove do pool. |
| 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 driver .NET/C# tentará criar novas conexões para manter esse mínimo. |
| O período de tempo que o driver .NET/C# aguarda uma resposta do servidor antes de atingir o tempo limite. |
| Quanto tempo um thread espera até que uma conexão fique 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 MaxConnectionPoolSize:
var settings = MongoClientSettings.FromConnectionString("<connection URI>"); settings.MaxConnectionPoolSize = 50; var client = new MongoClient(settings);
O código a seguir cria um cliente com a mesma configuração do exemplo anterior, mas usa um URI de conexão:
var settings = MongoClientSettings.FromConnectionString("<hostname>?maxPoolSize=50"); var client = new MongoClient(settings);
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: