Docs Menu
Docs Home
/ /
Conéctese a MongoDB
/ / / / /

Compresión

El controlador Java Reactive Streams admite la compresión de mensajes hacia y desde servidores MongoDB. El controlador implementa los tres algoritmos compatibles con los servidores MongoDB:

El controlador negociará qué algoritmo de compresión, si se utiliza alguno, se utilizará en función de las capacidades anunciadas por el servidor en el hello respuesta de comando

Incluya las siguientes declaraciones de importación:

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

Para especificar la compresión dentro de un ConnectionString, especifique compresores como parte de la cadena de conexión.

El siguiente código especifica el algoritmo de compresión Snappy:

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

El siguiente código especifica el algoritmo de compresión Zlib:

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

El siguiente código especifica el algoritmo de compresión Zstandard:

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

El siguiente código especifica múltiples algoritmos de compresión:

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

En todos los casos, el controlador utiliza el primer compresor de la lista para el cual el servidor tiene soporte.

Incluya las siguientes declaraciones de importación:

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

Para especificar la compresión dentro de una instancia MongoClientSettings, establezca la propiedad compressors en una lista de MongoCompressor instancias.

El siguiente código especifica el algoritmo de compresión Snappy:

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

El siguiente código especifica el algoritmo de compresión Zlib:

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

El siguiente código especifica el algoritmo de compresión Zstandard:

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

El siguiente código especifica múltiples algoritmos de compresión:

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

Al igual que con la configuración que utiliza una URI, el controlador utiliza el primer compresor de la lista para el cual el servidor tiene soporte.

Dado que el JDK no tiene compatibilidad integrada con Snappy ni Zstandard, el controlador depende de las implementaciones de código abierto existentes de Snappy y Zstandard. Para más información,consulte los repositorios de GitHub snappy-java y zstd-java.

Volver

Autenticación

En esta página