Overview
Esta guía te muestra cómo utilizar el driver de Rust para supervisar eventos de topología en una instancia de MongoDB, set de réplicas o clúster. El driver crea eventos de topología, también conocidos como eventos de Descubrimiento y Supervisión de Servidores (SDAM), cuando hay cambios en el estado de la instancia o el clúster al que está conectado.
Puedes usar información sobre cambios de topología en tu aplicación, o puedes supervisar los cambios en el clúster para obtener más información sobre cómo afectan a tu aplicación.
Esta guía incluye las siguientes secciones:
Descripciones de eventos describe los eventos SDAM que el controlador puede generar
Ejemplo de suscripción a eventos proporciona un código de muestra que muestra cómo suscribirse a un evento SDAM
Ejemplos de documentos de eventos proporciona muestras de cada evento SDAM
Información adicional proporciona enlaces a recursos y documentación de la API para los tipos y métodos mencionados en esta guía
Descripciones de eventos
Puedes suscribirte a uno o más de los siguientes eventos SDAM:
Nombre del Evento | Descripción |
|---|---|
Se crea cuando cambia el estado de una instancia, como cuando un miembro de un conjunto de réplicas cambia de secundario a primario. | |
Se crea cuando se abre una conexión a una instancia, como un set de réplicas. | |
Se crea cuando se cierra una conexión con una instancia, como un miembro de un set de réplicas. | |
Se crea cuando la descripción de la topología cambia, como cuando hay una elección de un nuevo primario o cuando una | |
Creado antes de que el controlador intente conectarse a una instancia. | |
Se crea después de que se cierren todas las conexiones de instancias en la topología. | |
Creado antes de que el driver ejecute un comando | |
Se crea cuando el comando | |
Se crea cuando un comando |
Ejemplo de suscripción a eventos
Puedes acceder a uno o más eventos SDAM suscribiéndote a ellos en tu aplicación. El siguiente ejemplo se conecta a una implementación de MongoDB y se suscribe al tipo de evento ServerOpeningEvent:
struct ServerOpenHandler; impl SdamEventHandler for ServerOpenHandler { fn handle_server_opening_event(&self, event: ServerOpeningEvent) { eprintln!("Server opening: {:?}", event); } } let handler: Arc<dyn SdamEventHandler> = Arc::new(ServerOpenHandler); client_options.sdam_event_handler = Some(handler); let client = Client::with_options(client_options)?; // ... perform actions with the client to generate events
Documentos de eventos de ejemplo
Las siguientes secciones muestran la salida de ejemplo para cada tipo de evento SDAM.
ServerDescriptionChangedEvent
ServerDescriptionChangedEvent { address: ..., topology_id: ..., previous_description: ..., new_description: ..., }
ServerOpeningEvent
ServerOpeningEvent { address: ..., topology_id: ..., }
ServerClosedEvent
ServerClosedEvent { address: ..., topology_id: ..., }
TopologyDescriptionChangedEvent
TopologyDescriptionChangedEvent { topology_id: ..., previous_description: ..., new_description: ..., }
TopologyOpeningEvent
TopologyOpeningEvent { topology_id: ..., }
EventoDeTopologíaCerrado
TopologyClosedEvent { topology_id: ..., }
ServerHeartbeatStartedEvent
ServerHeartbeatStartedEvent { server_address: ..., awaited: false, driver_connection_id: 12, server_connection_id: ..., }
Evento de latido del servidor exitoso
ServerHeartbeatSucceededEvent { duration: ..., reply: ..., server_address: ..., awaited: false, driver_connection_id: 12, server_connection_id: ..., }
ServerHeartbeatFailedEvent
ServerHeartbeatFailedEvent { duration: ..., failure: ..., server_address: ..., awaited: false, driver_connection_id: 12, server_connection_id: ..., }
Información Adicional
Para obtener más información sobre la supervisión de una implementación de MongoDB, consulte el 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.
Documentación de la API
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: