Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Comprimir tráfego de rede

Os drivers do MongoDB podem compactar as mensagens enviadas e recebidas do MongoDB Server. Isso reduz a quantidade de dados transferidos para cada operação. A compressão pode melhorar o desempenho em redes restritas e reduzir os custos de transferência de dados associados à execução do MongoDB Atlas.

A compressão opera no nível do protocolo de conexão , portanto, ela se aplica a todas as operações que seu aplicação executa. Se você especificar mais de um algoritmo, o driver usará o primeiro algoritmo da sua lista que o MongoDB Server também suportará.

Os drivers do MongoDB suportam os seguintes algoritmos de compressão:

O MongoDB Atlas cobra por dados transferidos entre regiões de nuvem, provedores de nuvem e entre sua infraestrutura e o MongoDB Atlas. A compactação de rede reduz a quantidade de dados que seu aplicação envia e recebe, o que pode reduzir esses custos de transferência de dados . Para saber mais sobre preços, consulte Custos de transferência de dados.

A compactação de rede também gera benefícios de produtividade. As mensagens compactadas levam menos tempo para serem transferidas pela rede, o que pode melhorar o tempo de resposta do seu aplicativo. A compactação também reduz a largura de banda usada pelo tráfego do MongoDB , o que deixa mais largura de banda disponível para outros aplicativos na mesma rede.

Ao escolher um algoritmo de compressão, considere as seguintes diretrizes:

  • Use o Zstandard para obter um equilíbrio entre eficiência de compactação e uso de recursos. O Zstandard é uma boa opção padrão para a maioria dos aplicativos.

  • Use o Snappy para aplicativos sensíveis à latência que exigem sobrecarga computacional mínima.

  • Use o Zlib para ampla compatibilidade entre drivers e ambientes MongoDB .

Dica

Monitore o uso da CPU

A compressão troca a largura de banda da rede pelo uso da CPU. Depois de ativar a compactação de rede, monitore a utilização da CPU do aplicativo para confirmar se a compensação beneficia o volume de trabalho. Para saber mais sobre essas compensações, consulte a postagem do blog Utilização da CPU e Compressão de Rede no MongoDB .

A tabela a seguir lista o driver mínimo suportado e a versão do MongoDB Server para cada algoritmo de compressão:

Algoritmo de compressão
Versão mínima do driver
Versão mínima do servidor

2.1

4.2

2.1

4.2

2.1

4.2

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.8.2"
features = ["snappy-compression"]
[dependencies.mongodb]
version = "3.8.2"
features = ["zlib-compression"]
[dependencies.mongodb]
version = "3.8.2"
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 definir opções de cliente, consulte o guia sobre Especificar opçõ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: