Você pode habilitar uma opção de driver para comprimir mensagens, o que reduz a quantidade de dados passados pela rede entre o MongoDB e seu aplicativo.
O driver suporta os seguintes algoritmos:
Snappy: disponível no 3 MongoDB.4 e posterior.
Zlib: disponível no 3 MongoDB.6 e posterior.
Zstandard: disponível no 4 MongoDB.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 suportada pela instância do MongoDB à qual está conectado.
Observação
Os aplicativos que exigem compressão Snappy ou Zstandard devem adicionar dependências explícitas para esses algoritmos.
Especifique algoritmos de compactação
Você pode habilitar a compressão para a conexão com sua instância MongoDB especificando os algoritmos de duas maneiras: adicionando o parâmetro à sua string de conexão utilizando ConnectionString
ou chamando o método na classe MongoClientSettings.Builder
.
Para habilitar a compressão utilizando o ConnectionString, adicione o parâmetro na compressors
string de conexão passada MongoClients.create()
para. Você pode especificar um ou mais algoritmos de compressão, separando-os com vírgulas:
ConnectionString connectionString = new ConnectionString("mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd"); MongoClient mongoClient = MongoClients.create(connectionString);
Especifique os algoritmos de compressão usando as seguintes strings:
Para habilitar a compressão usando o MongoClientSettings, passe ao método construtor compressorList() uma lista de instâncias do MongoCompressor. Você pode especificar um ou mais algoritmos de compressão na lista:
MongoClientSettings settings = MongoClientSettings.builder() .compressorList(Arrays.asList(MongoCompressor.createSnappyCompressor(), MongoCompressor.createZlibCompressor(), MongoCompressor.createZstdCompressor())) .build(); MongoClient client = MongoClients.create(settings);
Dependências do algoritmo de compactação
O JDK suporta compressão Zlib nativamente, mas Snappy e Zstandard dependem de implementações de código aberto.Consulte snappy-java e zstd-java para obter detalhes.