Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Supervisión de conexión

Esta guía muestra cómo usar el driver Go para supervisar el pool de conexiones del driver. Un pool de conexiones es un conjunto de conexiones abiertas del Protocolo de Control de Transmisión (TCP) que tu controlador mantiene con una instancia de MongoDB. Los pools de conexiones ayudan a reducir la cantidad de nuevas conexiones que tu aplicación necesita crear, lo que podría hacer que tu aplicación funcione más rápido.

Podría usar información sobre eventos del pool de conexiones en su aplicación para optimizar el rendimiento o comprender el ciclo de vida del cliente.

Puedes acceder a los detalles sobre los eventos del pool de conexiones suscribiéndote a ellos en tu aplicación. El siguiente ejemplo demuestra cómo suscribirse a la PoolEvent evento mediante la instanciación de un PoolMonitor y la conexión a una implementación:

var eventArray []*event.PoolEvent
cxnMonitor := &event.PoolMonitor{
Started: func(e *event.PoolEvent) {
eventArray = append(eventArray, e)
},
}
clientOpts := options.Client().ApplyURI(uri).SetPoolMonitor(cxnMonitor)
client, err := mongo.Connect(context.TODO(), clientOpts)

La siguiente tabla describe los tipos de eventos de grupo que el controlador genera:

Tipo de evento del pool
Descripción

ConnectionPoolCreated

Se crea cuando se crea un pool de conexiones.

ConnectionPoolReady

Se crea cuando un pool de conexiones está listo.

ConnectionPoolCleared

Se crea cuando se cierran todas las conexiones de la agrupación.

ConnectionPoolClosed

Se crea cuando se cierra un pool de conexiones, antes de la destrucción de la instancia del servidor.

ConnectionCreated

Se crea cuando se establece una conexión, pero no necesariamente cuando se utiliza para una operación.

ConnectionReady

Creado después de que una conexión completa un apretón de manos y está listo para ser usado en operaciones.

ConnectionClosed

Se crea cuando se cierra una conexión.

ConnectionCheckOutStarted

Se crea cuando una operación intenta adquirir una conexión para su ejecución.

ConnectionCheckOutFailed

Se crea cuando una operación no puede adquirir una conexión para ejecutarse.

ConnectionCheckedOut

Se crea cuando una operación obtiene con éxito una conexión para su ejecución.

ConnectionCheckedIn

Se crea cuando una conexión se revisa de nuevo en el pool después de ejecutar una operación.

Las siguientes secciones muestran la salida de muestra para cada tipo de evento de supervisión del pool de conexiones.

*event.PoolEvent
{
"type": "ConnectionPoolCreated",
"address": "...",
"connectionId": 0,
"options": {
"maxPoolSize": 100,
"minPoolSize": 0,
"maxIdleTimeMS": 0
},
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionPoolReady",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionPoolCleared",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionPoolClosed",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCreated",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionReady",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionClosed",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCheckOutStarted",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCheckOutFailed",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCheckedOut",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCheckedIn",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}

Para obtener más información sobre la supervisión de una implementación de MongoDB, consulte la Artículo Cómo supervisar MongoDB.

Para obtener más información sobre cómo conectarse a MongoDB, consulte la Guía de conexión.

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

Volver

Supervisión de comandos

En esta página