Overview
En esta guía, puedes aprender cómo el driver .NET/C# utiliza pools de conexiones para gestionar conexiones para una implementación de MongoDB y cómo puedes configurar los ajustes de pools de conexiones en tu aplicación.
Un pool de conexiones es un caché de conexiones abiertas a base de datos mantenido por el controlador .NET/C#. Cuando la aplicación solicita una conexión a MongoDB, el controlador de .NET/C# obtiene sin problemas una conexión desde el pool, realiza las operaciones y devuelve la conexión al pool para su reutilización.
Los grupos de conexiones ayudan a reducir la latencia de la aplicación y la cantidad de veces que se crean nuevas conexiones por el Driver de .NET/C#. El siguiente diagrama ilustra una visión de alto nivel de cómo MongoClient gestiona un pool de 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 máximo que el driver .NET/C# espera al establecer una nueva conexión antes de que se agote el tiempo de espera. |
| El número máximo de conexiones que cada pool 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 comprobar otra conexión en uso en el grupo. |
| El tiempo máximo que una conexión puede permanecer inactiva en el pool. Cuando una conexión excede este límite, el driver .NET/C# cierra la conexión y la remueve del pool. |
| El tiempo máximo que se puede agrupar una conexión. Cuando una conexión excede este límite, el driver .NET/C# cierra la conexión y la remueve del pool. |
| El número máximo de conexiones simultáneas que mantiene el grupo. Si se alcanza el tamaño máximo del grupo, 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, el driver de .NET/C# intenta crear nuevas conexiones para mantener este mínimo. |
| El tiempo que el driver .NET/C# 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 utilizando el parámetro MaxConnectionPoolSize:
var settings = MongoClientSettings.FromConnectionString("<connection URI>"); settings.MaxConnectionPoolSize = 50; var client = new MongoClient(settings);
El siguiente código crea un cliente con la misma configuración que el ejemplo anterior, pero utiliza un URI de conexión:
var settings = MongoClientSettings.FromConnectionString("<hostname>?maxPoolSize=50"); var client = new MongoClient(settings);
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: