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.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

Pools de conexiones

En esta guía, puedes aprender cómo el driver de Scala utiliza 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 mantenida por el driver de Scala. La aplicación recupera una conexión del pool, realiza operaciones y devuelve la conexión para su reutilización.

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

Cada instancia de MongoClient tiene un pool de conexiones incorporado para cada servidor en su topología de MongoDB. Los pools de conexiones abren sockets on-demand para soportar operaciones concurrentes de MongoDB en su aplicación.

La opción maxPoolSize establece el tamaño máximo de cada pool de conexiones, cuyo valor por defecto es 100. Si el número de conexiones en uso de un servidor alcanza el valor de maxPoolSize, la siguiente solicitud a ese servidor esperará hasta que una conexión esté 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.

Puedes configurar un pool 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 pool de conexiones:

Opción
Descripción

maxConnecting

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

Por defecto: 2

maxIdleTimeMS

El número máximo de milisegundos que una conexión puede permanecer inactiva en el pool antes de que el driver 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 driver puede tener abiertas a la vez en un único pool de conexiones.

Por defecto: 100

minPoolSize

El número mínimo de conexiones que el driver mantiene en un solo pool de conexiones. Este valor debe ser inferior a 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, consulta la documentación de la API ConnectionString.

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

Método
Descripción

addConnectionPoolListener()

Agrega un listener para eventos del pool 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 de espera antes de ejecutar la primera tarea de mantenimiento en un pool 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 pool.

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 driver mantiene en el pool.

Por defecto: 0

Nota

La configuración maxSize() y minSize() se aplica a cada servidor de la implementación de forma individual, no al pool 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 tratados en esta guía, consulte la siguiente documentación de la API: