Menu Docs
Página inicial do Docs
/ / /
Driver de fluxos reativos do Java
/ /

Compressão

Nesta página

  • Especifique a compressão usando a ConnectionString
  • Especificar compressão utilizando MongoClientSettings
  • Dependencies

O driver Java Reactive Streams suporta compressão de mensagens de e para servidores MongoDB . O driver implementa os três algoritmos suportados pelos servidores MongoDB :

  • Snappy: A compressão Snappy pode ser usada ao conectar a servidores MongoDB que executam a versão 3.4 e posterior.

  • zlib: azlib compactação pode ser usada ao se conectar a MongoDB servidores executando a versão 3.6 e posterior.

  • Zstandard: A compactação padrão Z pode ser usada ao se conectar a servidores MongoDB que executam a versão 4.2 e posterior.

O driver negociará qual algoritmo de compressão, se houver, é usado com base nos recursos informados pelo servidor na resposta de comando hello .

Inclua as seguintes declarações de importação:

import com.mongodb.ConnectionString;
import com.mongodb.reactivestreams.client.MongoClients;
import com.mongodb.reactivestreams.client.MongoClient;

Para especificar compressão dentro de um ConnectionString, especifique compressores como parte da string de conexão.

O seguinte código especifica o algoritmo de compressão Snappy:

ConnectionString connectionString =
new ConnectionString("mongodb://localhost/?compressors=snappy");
MongoClient mongoClient = MongoClients.create(connectionString);

O seguinte código especifica o algoritmo de compressão zlib :

ConnectionString connectionString =
new ConnectionString("mongodb://localhost/?compressors=zlib");
MongoClient mongoClient = MongoClients.create(connectionString);

O seguinte código especifica o algoritmo de compressão padrão Z:

ConnectionString connectionString =
new ConnectionString("mongodb://localhost/?compressors=zstd");
MongoClient mongoClient = MongoClients.create(connectionString);

O seguinte código especifica vários algoritmos de compressão:

ConnectionString connectionString =
new ConnectionString("mongodb://localhost/?compressors=snappy,zlib,zstd");
MongoClient mongoClient = MongoClients.create(connectionString);

Em todos os casos, o driver usa o primeiro compressor da lista para o qual o servidor oferece suporte.

Inclua as seguintes declarações de importação:

import com.mongodb.MongoClientSettings;
import com.mongodb.MongoCompressor;
import java.util.Arrays;

Para especificar a compressão em uma instância MongoClientSettings , defina a propriedade compressors como uma lista de instâncias MongoCompressor .

O seguinte código especifica o algoritmo de compressão Snappy:

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

O seguinte código especifica o algoritmo de compressão zlib :

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

O seguinte código especifica o algoritmo de compressão padrão Z:

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

O seguinte código especifica vários algoritmos de compressão:

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

Assim como na configuração que usa um URI, o driver usa o primeiro compressor da lista para o qual o servidor é compatível.

Como o JDK não tem suporte integrado para Snappy ou Zstandard, o driver depende das implementações Snappy e Zstandard de código aberto existentes. Veja o repositório snappy-java do Github e o repositório zstd-java do Github para obter detalhes.

Voltar

Autenticação