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
/ /

Compresión de la red

En esta guía, aprenderá a configurar la compresión de red para su conexión a MongoDB utilizando el driver 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:

  • Add Compression Feature Flags describe cómo agregar indicadores de funcionalidad a tu aplicación para diferentes compresores.

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

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

Para usar un compresor, añade la bandera de característica relevante a la lista de funcionalidades de la dependencia mongodb en el archivo Cargo.toml del proyecto.

Seleccione la pestaña de su compresor preferido para ver cómo añadir el indicador de funcionalidad necesario a su dependencia mongodb:

[dependencies.mongodb]
version = "3.5.2"
features = ["snappy-compression"]
[dependencies.mongodb]
version = "3.5.2"
features = ["zlib-compression"]
[dependencies.mongodb]
version = "3.5.2"
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 los compresores de las siguientes maneras:

  • Agregar el parámetro compressors a su cadena de conexión. Para ver un ejemplo que permite la compresión de esta manera, consulta la sección Cadena de conexión.

  • Configurar el campo compressors de una instancia ClientOptions. Después puedes pasar las opciones al método with_options() al instanciar un Client. Para ver un ejemplo que habilite la compresión de esta manera, consulta la sección ClientOptions.

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 la compresión Zstandard

El siguiente ejemplo muestra cómo especificar Snappy, Zlib y Zstandard como los 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 activar la compresión en tu instancia ClientOptions, configura el campo compressors y luego pasa las opciones al crear un cliente.

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

  • Compressor::Snappy

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

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

Para los compresores que tienen un campo level, ajuste el valor a None para indicar el nivel por defecto. La siguiente tabla describe los niveles de compresión por defecto y aceptados para Zlib y Zstandard:

Compresor
Nivel por defecto
Niveles aceptados

Zlib

6

Números enteros de 0 a 9 o None

Zstandard

3

Números enteros de 1 a 22 o None

Un valor level más alto resulta en una mayor compresión, que es más lenta.

El siguiente ejemplo muestra cómo especificar Snappy, Zlib y Zstandard como los 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, consulta la siguiente documentación API:

Volver

Opciones de conexión

En esta página