Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Pools de conexiones

Un mongocxx::client autónomo utiliza un algoritmo de un solo subproceso para supervisar el estado del clúster al que está conectado. Cuando se conecta a un set de réplicas, el hilo "detiene el mundo" cada 60 segundos para verificar el estado del clúster. Un mongocxx::pool, en cambio, utiliza un hilo de segundo plano separado para cada servidor en el clúster, cada uno de los cuales verifica el estado del servidor que supervisa cada 10 segundos. Debido a las ventajas de rendimiento de la supervisión del clúster en segundo plano en lugar de "detener el mundo", se recomienda encarecidamente usar un mongocxx::pool en lugar de un conjunto de clientes autónomos si tu aplicación tiene acceso a varios hilos, incluso si tu aplicación solo usa un hilo.

Un mongocxx::pool se puede compartir entre varios hilos y usarse para crear clientes. Sin embargo, cada mongocxx::client solo se puede usar en un solo hilo. Consulta el Documentación sobre la seguridad de hilos para obtener detalles sobre cómo usar un mongocxx::client de manera segura para hilos.

La cantidad de clientes en un grupo de conexiones se determina mediante los parámetros URI minPoolSize y maxPoolSize. Las opciones minPoolSize y maxPoolSize establecen los objetivos de uso de recursos cuando el controlador está inactivo o se utiliza por completo. Cuando se utiliza por completo, hay disponibles hasta el tamaño máximo de cliente del grupo. Cuando los clientes se devuelven al grupo, se destruyen hasta que este se reduce al tamaño mínimo del grupo.

maxPoolSize

El número máximo de clientes creados por un mongocxx::pool (tanto en el pool como extraídos). El valor predeterminado es 100. Una vez alcanzado, mongocxx::pool::acquire se bloquea hasta que otro subproceso devuelva un cliente al pool.

minPoolSize

Configura un tamaño objetivo para el pool cuando está inactivo. Una vez que se haya creado este número de clientes, nunca habrá menos de este número de clientes en el grupo. Si se crean clientes adicionales por encima de minPoolSize, se eliminarán cuando se devuelvan al grupo. El valor por defecto es "0", lo que desactiva esta funcionalidad. Cuando está deshabilitado, los clientes nunca se destruyen.

Para usar un pool de conexiones, primero cree un mongocxx::pool pasando el URI como argumento. Luego, llama a mongocxx::pool::acquire para recibir un cliente del pool. El cliente se devolverá automáticamente al grupo cuando quede fuera de alcance.

Ver el ejemplo de pool de conexiones para más detalles.

Volver

Stable API

En esta página