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.

Todas as versões do driver Kotlin Sync suportam compressão Snappy, Zlib e Zstandard.

A tabela a seguir lista a versão mínima do MongoDB Server suportada para cada algoritmo:

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

4.2

4.2

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:

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

  • Use o parâmetro compressors em seu URI de conexão.

Os exemplos a seguir demonstram como especificar todos os compressores disponíveis ao conectar ao MongoDB. Selecione a aba MongoClientSettings ou Connection URI para ver a sintaxe correspondente:

val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString("<connection string>"))
.compressorList(
listOf(
MongoCompressor.createSnappyCompressor(),
MongoCompressor.createZlibCompressor(),
MongoCompressor.createZstdCompressor())
)
.build()
val mongoClient = MongoClient.create(settings)
val uri = ConnectionString("mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd")
val mongoClient = MongoClient.create(uri)

Se você especificar Zlib como um dos seus algoritmos de compressão, você também poderá usar a propriedade MongoCompressor.LEVEL para especificar um nível de compressão. Esta opção aceita um valor inteiro entre -1 e 9:

  • -1: compactação padrão (geralmente 6)

  • 0: sem compressão

  • 1: velocidade mais rápida, mas menor compactação

  • 9: a melhor compactação, mas a velocidade mais lenta

Os exemplos seguintes demonstram como especificar um nível de compressão para o compressor zlib. Selecione a aba MongoClientSettings ou Connection URI para ver a sintaxe correspondente:

val zlib = MongoCompressor.createZlibCompressor()
val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString(uri))
.compressorList(listOf(zlib.withProperty(MongoCompressor.LEVEL, <level>)))
.build()
val mongoClient = MongoClient.create(settings)
val uri = "mongodb://<db_username>:<db_password>@<hostname>:<port>/?" +
"compressors=zlib" +
"zlibCompressionLevel=<zlib compression level>"
val mongoClient = MongoClient.create(uri)

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