Overview
En esta guía, puedes aprender cómo PyMongo utiliza los pools de conexiones para gestionar las conexiones a una implementación de MongoDB y cómo puedes configurar los ajustes del pool de conexiones en tu aplicación.
Un pool de conexiones es una caché de conexiones de base de datos abiertas mantenidas por PyMongo. Cuando tu aplicación solicita una conexión a MongoDB, PyMongo obtiene de manera transparente una conexión del pool, realiza las operaciones y devuelve la conexión al pool para que se reutilice.
Las agrupaciones de conexiones ayudan a reducir la latencia de la aplicación y la cantidad de veces que PyMongo crea nuevas conexiones.
Configuración de pools de conexiones
Puede especificar los siguientes ajustes del grupo de conexiones en su objeto MongoClient o en su URI de conexión:
Configuración | Descripción |
|---|---|
| El tiempo que PyMongo espera al establecer una nueva conexión antes de que se agote el tiempo de espera. |
| Número máximo de conexiones que cada grupo puede establecer simultáneamente. Si se alcanza este límite, las solicitudes posteriores esperan hasta que se establezca una conexión o se vuelva a poner en el grupo otra conexión en uso. |
| El tiempo máximo que una conexión puede permanecer inactiva en el pool. Cuando una conexión supera este límite, PyMongo la cierra y la elimina del pool. Establezca este valor por encima del período de inactividad esperado de su aplicación, pero por debajo de los tiempos de espera de conexión del firewall o del proxy para evitar desconexiones inesperadas. |
| Número máximo de conexiones simultáneas que admite el pool. Si se alcanza el tamaño máximo del pool, las solicitudes posteriores esperan hasta que haya una conexión disponible. |
| El número mínimo de conexiones simultáneas que mantiene el grupo. Si el número de conexiones abiertas cae por debajo de este valor debido a errores de red, PyMongo intenta crear nuevas conexiones para mantener este mínimo. |
| La duración que PyMongo espera una respuesta del servidor antes de que se agote el tiempo de espera. |
| Cuánto tiempo espera un hilo a que una conexión esté disponible en el pool de conexiones antes de que se agote el tiempo de espera. |
El siguiente código crea un cliente con un tamaño máximo de pool de conexiones de 50 usando el parámetro maxPoolSize. Selecciona la pestaña Synchronous o Asynchronous para ver el código correspondiente:
client = MongoClient(host, port, maxPoolSize=50)
client = AsyncMongoClient(host, port, maxPoolSize=50)
El siguiente código crea un cliente con la misma configuración que el ejemplo anterior, pero utiliza un URI de conexión:
client = MongoClient(host, port, maxPoolSize=50)
client = AsyncMongoClient(host, port, maxPoolSize=50)
Información Adicional
Para obtener más información sobre los pools de conexiones, consulta Descripción general del pool de conexiones en el manual del servidor de MongoDB.
Documentación de la API
Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API: