Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Pools de conexiones

En esta guía, aprenderá cómo el controlador de Scala utiliza grupos de conexiones para gestionar las conexiones a una implementación de MongoDB y cómo puede configurar los ajustes del grupo de conexiones en su aplicación.

Un pool de conexiones es una caché de conexiones abiertas a la base de datos, mantenida por el controlador de Scala. Tu aplicación recupera una conexión del pool, realiza operaciones y devuelve la conexión para su reutilización.

El uso de un grupo de conexiones reduce la latencia y minimiza la cantidad de veces que el controlador crea nuevas conexiones.

Cada instancia MongoClient tiene un grupo de conexiones integrado para cada servidor en su topología de MongoDB. Los grupos de conexiones abren sockets bajo demanda para admitir operaciones concurrentes de MongoDB en su aplicación.

La opción maxPoolSize establece el tamaño máximo de cada grupo de conexiones, que por defecto es 100. Si el número de conexiones en uso a un servidor alcanza el valor de maxPoolSize, la siguiente solicitud a ese servidor espera hasta que haya una conexión disponible.

Cada instancia de MongoClient abre dos sockets más por servidor en su topología de MongoDB para la supervisión del estado del servidor.

Puede configurar un grupo de conexiones utilizando una cadena de conexión o un objeto MongoClientSettings.

Selecciona la pestaña Connection String o MongoClientSettings para ver la sintaxis correspondiente:

La siguiente tabla describe las opciones de cadena de conexión para configurar un grupo de conexiones:

Opción
Descripción

maxConnecting

El número máximo de conexiones que el controlador puede establecer simultáneamente.

Por defecto: 2

maxIdleTimeMS

El número máximo de milisegundos que una conexión puede permanecer inactiva en el grupo antes de que el controlador la cierre. Un valor de 0 indica que no hay límite.

Por defecto: 0

maxPoolSize

El número máximo de conexiones que el controlador puede tener abiertas simultáneamente en un único grupo de conexiones.

Por defecto: 100

minPoolSize

El número mínimo de conexiones que el controlador mantiene en un único grupo de conexiones. Este valor debe ser menor que maxPoolSize.

Por defecto: 0

waitQueueTimeoutMS (deprecated)

Esta opción está obsoleta. Utilice timeoutMS en su lugar. Para obtener más información, consulte Limitar el tiempo de ejecución del servidor.

El tiempo máximo de espera en milisegundos que una operación puede esperar para que una conexión esté disponible. Un valor de 0 implica que no hay límite.

Por defecto: 120000

maxLifeTimeMS

El número máximo de milisegundos que una conexión puede permanecer abierta. Un valor de 0 indica que no hay límite.

Por defecto: 0

Para obtener más información,consulte la documentación de la API ConnectionString.

Encadena el método applyToConnectionPoolSettings() a la clase MongoClientSettings.Builder para configurar un grupo de conexiones. La siguiente tabla describe los métodos ConnectionPoolSettings.Builder que puedes encadenar para configurar el grupo:

Método
Descripción

addConnectionPoolListener()

Agrega un detector de eventos para el grupo de conexiones.

applyConnectionString()

Aplica la configuración de un objeto ConnectionString.

applySettings()

Aplica la configuración de un objeto ConnectionPoolSettings.

connectionPoolListenerList()

Establece una lista de listeners del pool de conexiones.

maintenanceFrequency()

Establece la frecuencia de la tarea periódica que gestiona las conexiones inactivas y caducadas.

maintenanceInitialDelay()

Establece el período de tiempo que debe transcurrir antes de ejecutar la primera tarea de mantenimiento en un grupo de conexiones.

maxConnectionIdleTime()

Establece el tiempo máximo de inactividad para una conexión agrupada. Un valor de 0 indica que no hay límite.

maxConnectionLifeTime()

Establece la vida útil máxima de una conexión agrupada. Un valor de 0 indica que no hay límite.

maxConnecting()

Establece el número máximo de conexiones que un pool puede establecer de manera concurrente.

Por defecto: 2

maxSize()

Establece el número máximo de conexiones permitidas en el grupo.

Por defecto: 100

maxWaitTime()

Establece el tiempo máximo para esperar a una conexión disponible.

Por defecto: 2 minutos

minSize()

Establece el número mínimo de conexiones que el controlador mantiene en el grupo.

Por defecto: 0

Nota

Las configuraciones maxSize() y minSize() se aplican a cada servidor de su implementación individualmente, no al grupo en su conjunto.

Para obtener más información, consulte la documentación de la API ConnectionPoolSettings.Builder.

El siguiente ejemplo muestra cómo crear un pool de conexiones que tenga un tamaño máximo de 50 conexiones.

Selecciona la pestaña Connection String o MongoClientSettings para ver la sintaxis correspondiente:

val mongoClient = MongoClient("mongodb://<host>:<port>/?maxPoolSize=50")
val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString("<connection string>"))
.applyToConnectionPoolSettings(
(builder: ConnectionPoolSettings.Builder) => builder.maxSize(50))
.build()
val mongoClientWithSettings = MongoClient(settings)

Para más información sobre el uso de un pool de conexiones, consulta la documentación de la pool de conexiones en el manual de servidor.

Para obtener más información sobre los tipos y métodos que se describen en esta guía, consulte la siguiente documentación de la API: