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, as solicitações adicionais aguardarão até que uma conexão seja estabelecida ou outra conexão em uso seja verificada de volta ao pool. |
| O tempo máximo que uma conexão pode permanecer ociosa 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 aguardam até que uma conexão se torne 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 durante o qual o driver .NET/C# aguarda uma resposta do servidor antes de atingir o 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 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: