Este documento describe cómo usar un pool de conexiones para administrar las conexiones entre aplicaciones e instancias de MongoDB.
¿Qué es un pool de conexiones?
Definición
A Elpool de conexiones es un caché de conexiones de base de datos abiertas y listas para usar, mantenido por el controlador. Su aplicación puede obtener conexiones del pool sin problemas, realizar operaciones y devolverlas. Los pools de conexiones son seguros para subprocesos.
Beneficios de un pool de conexiones
Un pool de conexiones ayuda a reducir la latencia de la aplicación y la cantidad de veces que se crean nuevas conexiones.
Un pool de conexiones crea conexiones al inicio. Las aplicaciones no necesitan devolver manualmente las conexiones al grupo de conexiones. En su lugar, las conexiones regresan automáticamente al grupo.
Algunas conexiones están activas y otras están inactivas, pero disponibles. Si la aplicación solicita una conexión y hay una conexión disponible en el pool, no es necesario crear una nueva conexión.
Cree y utilice un pool de conexiones
Utilice una instancia de su controlador MongoClient Objeto
La mayoría de los controladores proporcionan un objeto de tipo MongoClient.
Utilice una instancia MongoClient por aplicación, a menos que la aplicación se conecte a muchos clústeres separados. Cada MongoClient instancia gestiona su propio pool de conexiones al clúster o nodo de MongoDB especificado cuando se crea el MongoClient. Los objetos MongoClient son seguros para subprocesos en la mayoría de los controladores.
Nota
Se debe almacenar la instancia de MongoClient en un lugar que sea accesible globalmente por la aplicación.
Autenticación
Para utilizar un grupo de conexiones con LDAP, consulte Comportamiento del grupo de conexiones LDAP.
Agrupamiento de conexiones de clúster fragmentado
mongos Los routers tienen pools de conexiones para cada nodo en el clúster. La disponibilidad de conexiones a nodos individuales dentro de un clúster fragmentado afecta la latencia. Las operaciones deben esperar a que se establezca una conexión.
Configuración del pool de conexiones
Se puede especificar la configuración del pool de conexiones en estas ubicaciones:
La instancia
MongoClientde su aplicaciónArchivos de configuración del framework de aplicaciones
Configuraciones
Configuración | Descripción |
|---|---|
La mayoría de los drivers, por defecto, nunca se agotan. Algunas versiones de los drivers de Java (por ejemplo, la versión 3.7) tienen por defecto el valor Por defecto: | |
Número máximo de conexiones que un pool puede establecer concurrentemente.
Incrementar el valor de Por defecto: | |
El número máximo de milisegundos que una conexión puede permanecer inactiva en el pool antes de ser eliminada y cerrada. Por defecto: se debe consultar la documentación su driver. | |
Número máximo de conexiones abiertas en el pool. Cuando el pool de conexiones alcanza el número máximo de conexiones, las nuevas conexiones esperan hasta el valor de Por defecto: | |
Número mínimo de conexiones abiertas en el pool. El valor de Por defecto: | |
Número de milisegundos que se deben esperar antes de que se agote el tiempo de espera en una conexión TCP. No utilices Configurar tiempos de espera de socket bajos puede resultar en que las operaciones fallen antes de que el servidor responda. Por defecto: | |
Tiempo máximo de espera en milisegundos que un hilo puede esperar para que una conexión esté disponible. Un valor de Por defecto: |