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 compactação troca a largura de banda da rede pelo uso da CPU. Depois de habilitar a compactação de rede, monitore a utilização da CPU do seu aplicativo para confirmar que a troca beneficia sua carga de trabalho. Para saber mais sobre essas trocas, consulte a publicação no blog Utilização da CPU e compactaçã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

3.6

4.2

3.6

4.2

3.11

4.2

Para habilitar a compactação de rede para sua conexão do MongoDB , instale as dependências necessárias e especifique os algoritmos de compactação que você deseja usar.

A tabela a seguir lista cada algoritmo e a dependência necessária, se houver:

Algoritmo de compressão
Dependência

Snappy

Baixe snappy-java o, um wrapper Java JNI para a biblioteca Snappy. Para instalar, consulte snappy-java no Maven Central.

zlib

Nenhum. O driver suporta nativamente a compressão Zlib.

Zstandard

Baixar zstd-jni, um wrapper Java JNI para a biblioteca Zstandard. Para instalar, consulte zstd-jni no Maven Central.

Você pode habilitar a compressão para a conexão com sua instância do MongoDB especificando os algoritmos de uma das seguintes maneiras:

  • Use o parâmetro compressors em sua string de conexão

  • Encadeie o método compressorList() ao método MongoClientSettings.builder()

Selecione a aba Connection String ou MongoClientSettings para ver a sintaxe correspondente:

Inclua os seguintes parâmetros em sua string de conexão para habilitar a compressão:

Nome da opção
Tipo
Descrição

compressors

string

Especifica um ou mais algoritmos de compressão que o driver tentará usar para compactar as solicitações enviadas à instância conectada do MongoDB. Os valores possíveis incluem: zlib, snappy e zstd.

Padrão: null

zlibCompressionLevel

inteiro

Especifica o grau de compressão que o Zlib utiliza para diminuir o tamanho das solicitações para a instância MongoDB conectada. O nível pode variar -1 de 9 a, com valores mais baixos sendo compactados mais rapidamente (mas resultando em solicitações maiores) e valores maiores compactando mais lentamente (mas resultando em solicitações menores).

Padrão: null

Especifica a seguir a ordem em que o driver tentará compactar as solicitações antes de serem enviadas:

ConnectionString connectionString = new ConnectionString(
"mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd");
MongoClient client = MongoClients.create(connectionString);

Para obter mais informações sobre esses parâmetros, consulte a documentação da API ConnectionString.

Encadeie os seguintes métodos ao construtor do MongoClientSettings para modificar o comportamento de compressão do driver:

Método
Descrição

compressorList()

Define os compressores a serem usados para comprimir mensagens para o servidor.

MongoClientSettings settings = MongoClientSettings.builder()
.compressorList(Arrays.asList(MongoCompressor.createSnappyCompressor(),
MongoCompressor.createZlibCompressor(),
MongoCompressor.createZstdCompressor()))
.build();
MongoClient client = MongoClients.create(settings);

Para obter mais informações sobre os métodos encadeados, consulte a documentação da API do MongoClientSettings.Builder.

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