Visão geral
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.
Especifique algoritmos de compactação
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étodoMongoClientSettings.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 |
---|---|---|
| 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: Padrão: |
| 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 Padrão: |
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 |
---|---|
| 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.
Dependências do algoritmo de compactação
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:
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API: