Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Driver de sincronização Java
/ /

Comprimir tráfego de rede

Neste guia, você pode aprender como usar o driver Java para habilitar a compressão de rede. O driver fornece uma opção de conexão para comprimir mensagens, o que reduz a quantidade de dados passados pela rede entre o MongoDB e seu aplicação.

O driver é compatível com os seguintes algoritmos de compressão:

  • Snappy: disponível no MongoDB Server3 v.4 e posterior.

  • Zlib: disponível no MongoDB Server3 v.6 e posterior.

  • Zstandard: disponível no MongoDB Server4 v.2 e posterior.

O driver é testado nas seguintes versões dessas bibliotecas:

  • org.xerial.snappy:snappy-java:1.1.10.3

  • com.github.luben:zstd-jni:1.5.5-3

Se você especificar vários algoritmos de compressão, o driver selecionará o primeiro na lista compatível com sua instância do MongoDB.

Observação

Os aplicativos que exigem compressão Snappy ou Zstandard devem adicionar dependências explícitas para esses algoritmos. Para saber mais, consulte a seção Dependências do algoritmo de compressão deste guia.

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.

O JDK suporta nativamente a compressão Zlib. No entanto, Snappy e Zstandard dependem de implementações Java de código aberto. Para saber mais sobre essas implementações, consulte os seguintes repositórios do GitHub:

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

Voltar

Definir configurações de CRUD no nível do cliente

Nesta página