Docs Menu
Docs Home
/ /

Compresión de la red

En esta guía, puede aprender a configurar la compresión de red para su conexión a MongoDB utilizando el controlador Rust.

La compresión de red es una función que le permite comprimir y descomprimir los mensajes enviados entre su aplicación y MongoDB, reduciendo la cantidad total de datos que pasan por la red.

El controlador admite los siguientes compresores:

  1. Rápido

  2. Zlib

  3. Zstandard

Nota

Selección del compresor

Si especifica varios compresores para usar en su conexión, el controlador selecciona el primero que sea compatible con la instancia de MongoDB a la que está conectado el controlador.

Esta guía incluye las siguientes secciones:

  • Agregar indicadores de características de compresión describe cómo agregar indicadores de características a su aplicación para diferentes compresores

  • Habilitar compresión de red describe cómo habilitar la compresión de red en su Client instancia

  • Información adicional proporciona enlaces a recursos y documentación de API para los tipos y métodos mencionados en esta guía.

Para utilizar un compresor, agregue el indicador de característica relevante a la lista de características de su dependencia mongodb en el archivo Cargo.toml de su proyecto.

Seleccione la pestaña de su compresor preferido para ver cómo agregar la función necesaria a su dependencia mongodb:

[dependencies.mongodb]
version = "3.5.1"
features = ["snappy-compression"]
[dependencies.mongodb]
version = "3.5.1"
features = ["zlib-compression"]
[dependencies.mongodb]
version = "3.5.1"
features = ["zstd-compression"]

Tip

Para especificar varios compresores, debe agregar el indicador de función para cada compresor a su dependencia mongodb.

Puede habilitar la compresión en su instancia Client especificando compresores de las siguientes maneras:

  • Añadiendo el compressors parámetro a la cadena de conexión. Para ver un ejemplo que permite la compresión de esta manera, consulte la sección Cadena de conexión.

  • Configurando el compressors campo de una ClientOptions instancia. Luego, puede pasar las opciones al with_options() método al instanciar una Client instancia. Para ver un ejemplo que habilita la compresión de esta manera, consulte la sección "Opciones del Cliente".

Para habilitar la compresión mediante una cadena de conexión, especifique el parámetro compressors. Puede especificar uno o más de los siguientes valores para el parámetro compressors:

  • "snappy" para compresión Snappy

  • "zlib" para la compresión Zlib

  • "zstd" para compresión Zstandard

El siguiente ejemplo muestra cómo especificar Snappy, Zlib y Zstandard como compresores para una conexión:

let uri = "mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd";
let client = Client::with_uri_str(uri).await?;

Para obtener más información sobre cómo configurar las opciones del cliente, consulte la guía en Opciones de conexión.

Para habilitar la compresión dentro de su instancia ClientOptions, configure el campo compressors y luego pase las opciones al crear un cliente.

El campo compressors acepta un valor de tipo Vec<Compressor>. El tipo Compressor tiene los siguientes valores posibles:

  • Compressor::Snappy

  • Compressor::Zstd { level: <integer> }

  • Compressor::Zlib { level: <integer> }

Para los compresores con un campo level, establezca el valor en None para indicar el nivel predeterminado. La siguiente tabla describe los niveles de compresión predeterminados y aceptados para Zlib y Zstandard:

Compresor
Nivel predeterminado
Niveles aceptados

Zlib

6

Enteros de 0 a 9 o None

Zstandard

3

Enteros de 1 a 22 o None

Un valor level más alto da como resultado una mayor compresión, lo que es más lento.

El siguiente ejemplo muestra cómo especificar Snappy, Zlib y Zstandard como compresores para una conexión:

let uri = "<connection string>";
let mut client_options = ClientOptions::parse(uri).await?;
let compressors = vec![
Compressor::Snappy,
Compressor::Zstd { level: Some(1) },
Compressor::Zlib { level: None }
];
client_options.compressors = Some(compressors);
let client = Client::with_options(client_options)?;

Para más información sobre los conceptos de esta guía, consulta la siguiente documentación:

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

Volver

Opciones de conexión

En esta página