Menu Docs
Página inicial do Docs
/ / /
Driver C++
/

Pool de Conexões

Um mongocxx::client standalone usa um algoritmo de thread único para monitorar o estado do cluster ao qual está conectado. Quando conectado a um conjunto de réplicas, o thread "para o mundo" a cada 60 segundos para verificar o status do cluster. Um mongocxx::pool, por outro lado, usa um thread de background separado para cada servidor no cluster, cada um dos quais verifica o status do servidor que monitora a cada 10 segundos. Devido às vantagens de desempenho de monitorar o cluster em segundo plano em vez de "parar o mundo", é altamente recomendável usar um mongocxx::pool em vez de um conjunto de clientes autônomos se o aplicativo tiver acesso a vários threads, mesmo que o aplicativo apenas usa um thread.

Um mongocxx::pool pode ser compartilhado entre vários threads e usado para criar clientes. No entanto, cada mongocxx::client só pode ser usado em um único thread. Consulte adocumentação de segurança de thread para obter detalhes sobre como usar um mongocxx::client de maneira segura para threads.

Um mongocxx::pool não pode ser compartilhado entre um pai e uma bifurcação. Você deve criar seu pool de conexões após a bifurcação. Consulte a documentação de documentação de segurança do fork.

O número de clientes em um pool de conexões é limitado pelo parâmetro URI maxPoolSize. Depois que o número de clientes criados por um mongocxx::pool (tanto no pool quanto com check-out) atinge o valor de maxPoolSize, mongocxx::pool::acquire bloqueia até que outro thread devolva um cliente ao pool. O valor padrão é 100.

Para usar um pool de conexões, primeiro crie um mongocxx::pool, passando o URI como argumento. Em seguida, chame mongocxx::pool::acquire para receber um cliente do pool. O cliente será automaticamente devolvido ao pool quando sair do escopo.

Consulte o exemplo dopool de conexões para obter mais detalhes.

Voltar

Stable API

Nesta página