Menu Docs
Página inicial do Docs
/ / /
Driver Rust
/ /

Compactação de rede

Nesta página

  • Visão geral
  • Adicionar sinalizadores de recurso de compressão
  • Habilitar compressão de rede
  • Connection string
  • ClientOptions
  • Informações adicionais
  • Documentação da API

Neste guia, você aprenderá como configurar a compactação de rede para sua conexão com o MongoDB usando o driver Rust.

A compactação de rede é um recurso que permite compactar e descompactar mensagens enviadas entre seu aplicativo e o MongoDB, reduzindo a quantidade total de dados passados pela rede.

O driver é compatível com os seguintes compressores:

  1. Snappy: disponível no MongoDB 3.4 e posterior

  2. zlib: disponível no MongoDB 3.6 e posterior

  3. Zstandard: disponível no MongoDB 4.2 e posterior

Observação

Seleção de compressor

Se você especificar vários compressores para usar em sua conexão, o driver selecionará o primeiro que for suportado pela instância MongoDB à qual o driver está conectado.

Este guia inclui as seguintes seções:

  • Adicionar sinalizadores de recursos de compressão descreve como adicionar sinalizadores de recursos ao seu aplicativo para diferentes compressores

  • Habilitar Compressão de Rede descreve como habilitar a compressão de rede na sua instância do Client

  • Informações adicionais fornecem links para recursos e documentação da API para os tipos e métodos mencionados neste guia

Para usar um compressor, adicione o sinalizador de mongodb feição relevante à sua lista de feições da dependência do no Cargo.toml arquivo do seu projeto.

Selecione a guia do compressor de sua preferência para ver como adicionar o sinalizador de funcionalidade necessário à sua dependência do mongodb :

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

Dica

Para especificar vários compressores, você deve adicionar o sinalizador de feição para cada compressor à sua dependência mongodb .

Você pode habilitar a compressão na sua instância do Client especificando compressores das seguintes maneiras:

  • Adicionando o parâmetro compressors à sua string de conexão. Para ver um exemplo que habilita a compressão dessa forma, consulte a seção stringde conexão .

  • Definindo o campo compressors de uma instância ClientOptions . Você pode então passar as opções para o método with_options() ao instanciar um Client. Para ver um exemplo que habilita a compressão dessa forma, consulte a seção ClientOptions .

Para habilitar a compressão utilizando uma string de conexão, especifique o parâmetro compressors . Você pode especificar um ou mais dos seguintes valores para o parâmetro compressors :

  • "snappy" para compressão Snappy

  • "zlib" para compactação Zlib

  • "zstd" para compressão padrão Z

O exemplo a seguir mostra como especificar Snappy, zlib e Zstandard como os compressores para uma conexão:

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

Para saber mais sobre como configurar as opções do cliente , consulte o guia sobre asopções de conexão .

Para habilitar a compressão na sua instância do ClientOptions , defina o campo compressors e então passe as opções ao criar um cliente.

O campo compressors assume um valor do tipo Vec<Compressor>. O tipo Compressor tem os seguintes valores possíveis:

  • Compressor::Snappy

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

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

Para os compressores que têm um campo level , defina o valor como None para indicar o nível padrão. A tabela a seguir descreve os níveis de compressão padrão e aceitos para zlib e Zstandard:

Compressor
Nível padrão
Níveis aceitos
zlib
6
Inteiros de 0 a 9 ou None
Zstandard
3
Inteiros de 1 a 22 ou None

Um valor de level maior resulta em mais compactação, que é mais lenta.

O exemplo a seguir mostra como especificar Snappy, zlib e Zstandard como os compressores para uma conexão:

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 obter mais informações sobre os conceitos deste guia, consulte a seguinte documentação:

Para saber mais sobre qualquer um dos métodos ou tipos mencionados neste guia, consulte a seguinte documentação da API:

Voltar

Opções de conexão