Overview
Esta sección describe las opciones de conexión y autenticación de MongoDB disponibles en el driver Ruby. Puedes configurar tu conexión utilizando el URI de conexión (también llamado cadena de conexión) o pasando argumentos al constructor Mongo::Client.
Uso del URI de conexión
Si pasas un URI de conexión al constructor Mongo::Client, puedes incluir opciones de conexión en la string como pares <name>=<value>. En el siguiente ejemplo, el URI de la conexión contiene la opción connectTimeoutMS con un valor de 60000 y la opción tls con un valor de true:
uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true" client = Mongo::Client.new(uri)
Usando un Mongo::Client
Puede pasar opciones de conexión como argumentos al constructor Mongo::Client en lugar de incluirlas en su URI de conexión. Cuando configuras tu conexión de esta manera, es más fácil para ti cambiar los ajustes en tiempo de ejecución y detectar errores durante la compilación. El siguiente ejemplo muestra cómo usar el constructor Mongo::Client para configurar opciones de conexión:
uri = "mongodb://<hostname>:<port>" client = Mongo::Client.new(uri, connect_timeout: 60000, ssl: true)
Opciones de conexión
Las siguientes secciones describen las opciones de conexión disponibles en el controlador Ruby.
Compresión de la red
Opción de conexión | Descripción |
|---|---|
compresores | Una lista de posibles compresores a utilizar, en orden de preferencia. El driver elige el primer compresor que también es compatible con el servidor. Actualmente, el driver solo admite |
zlib_compression_level | Nivel de compresión de Zlib a utilizar, si se usa compresión. Esta opción acepta un valor entero entre |
Tiempos de espera
Opción de conexión | Descripción |
|---|---|
timeout_conexión | El número de segundos que se deben esperar para establecer una conexión de socket antes de generar una excepción. Este tiempo de espera también se utiliza para la resolución de registros SRV DNS. |
:timeout_ms | El número de milisegundos a esperar para que se ejecute una operación antes de generar una excepción. |
Selección de servidores
Opción de conexión | Descripción |
|---|---|
:balanceo de carga | Si se espera conectar a un balanceador de carga. |
:server_monitoring_mode | El protocolo de supervisión del servidor que se utilizará. Cuando esta opción se establece en Tipo de dato: |
:server_selection_timeout | La cantidad máxima de tiempo, en segundos, que el driver espera para que la selección del servidor tenga éxito antes de lanzar una excepción. |
Para obtener más información sobre la selección de servidores, consulte la guía Selección de Servidores.
Autenticación
Opción de conexión | Descripción |
|---|---|
auth_mech | El mecanismo que utiliza el driver de Ruby para autenticar la aplicación. |
propiedades_mecánica_autenticación | Opciones específicas del mecanismo de autenticación. Esta opción no es necesaria para todos los mecanismos de autenticación. |
origen_de_autenticación | La base de datos contra la que se va a autenticar. |
Usuario/a | |
:contraseña |
Operaciones de Lectura y Escritura
Opción de conexión | Descripción |
|---|---|
Conjunto de réplicas | Especifica el nombre del set de réplicas al que conectarse. |
conexión_directa | Si se conecta directamente al host especificado |
:enable_overload_retargeting | Si el driver desprioriza un servidor que devuelve un error de sobrecarga, lo que reduce la probabilidad de reintentar en el mismo servidor sobrecargado. |
max_intentos_adaptativos | El número máximo de reintentos que se deben realizar cuando el driver encuentra errores de sobrecarga. |
:leer | Las opciones de preferencia de lectura. Para obtener más información, consulte Preferencia de lectura en el manual de MongoDB Server. |
:read_concern | Especifica las opciones de nivel de consistencia de lectura. Para obtener más información, consulta Nivel de consistencia de lectura en el manual de MongoDB Server. |
conformidad_de_lectura | Especifica el nivel de confirmación de escritura (write concern) del cliente. Para obtener más información, consulte Nivel de confirmación de escritura (write concern) en el manual de MongoDB Server. |
:local_threshold | La ventana de latencia, en segundos, para la elegibilidad de un nodo de set de réplicas. Si el ping de ida y vuelta de un nodo tarda más que el tiempo de ping de ida y vuelta del servidor más rápido más este valor, el servidor no es elegible para la selección. |
Pools de conexiones
Opción de conexión | Descripción |
|---|---|
:max_pool_size | El número máximo de conexiones simultáneas que mantiene el grupo. Si el número de conexiones en uso a un servidor alcanza el valor especificado, la siguiente solicitud a ese servidor espera hasta que una conexión esté disponible. Establecer esta opción en |
conexiones máximas | El número máximo de conexiones que cada pool puede establecer simultáneamente. |
min_pool_size | El número mínimo de conexiones simultáneas que mantiene el grupo. |
:max_idle_time | El número máximo de segundos que una conexión puede permanecer inactiva en el pool. |
Para obtener más información sobre los pool de conexiones, consulta la guía de pool de conexiones.
Nota
Reducción de carga en la gestión inteligente de la carga de trabajo (IWM)
Si los errores con las etiquetas SystemOverloadedError o RetryableError provocan fallos en su aplicación o aparecen en los registros de la misma, es posible que la función de reducción de carga esté activa en su clúster y que su controlador no esté actualizado a una versión compatible. Le recomendamos actualizar su controlador Ruby de MongoDB a la versión 2.24 o posterior. Si estos errores persisten tras la actualización, puede solucionarlos mediante cambios en el servidor, como revisar la configuración de reducción de carga, o mediante cambios en la aplicación, como implementar un manejo de errores personalizado o limitar las solicitudes del cliente. Dependiendo de su situación, los cambios en la aplicación pueden ser preferibles o necesarios.
La función de reducción de carga es una característica de IWM que ayuda a gestionar la carga del servidor rechazando las operaciones excesivas durante una sobrecarga prolongada. Esta función está disponible en MongoDB 9.0 y versiones posteriores.
Para obtener más información sobre IWM o sobre cómo gestionar los errores de sobrecarga, consulte la página de Gestión inteligente de la carga de trabajo o la página de Errores de sobrecarga en la documentación de Atlas.
Documentación de la API
Para obtener más información sobre las opciones de Mongo::Client para el driver de Ruby, consulta la documentación de la API de Mongo::Client.