Overview
En esta guía, aprenderá a usar el controlador de Java para habilitar la compresión de red. El controlador ofrece una opción de conexión para comprimir mensajes, lo que reduce la cantidad de datos que se transmiten por la red entre MongoDB y su aplicación.
El controlador admite los siguientes algoritmos de compresión:
Rápido:Disponible en MongoDB Server v3.4 y versiones posteriores.
Zstandard: Disponible en MongoDB Server4 v.2 y posteriores.
El controlador prueba las siguientes versiones de estas bibliotecas:
org.xerial.snappy:snappy-java:1.1.10.3com.github.luben:zstd-jni:1.5.5-3
Si especifica varios algoritmos de compresión, el controlador selecciona el primero de la lista compatible con su instancia de MongoDB.
Nota
Las aplicaciones que requieren compresión Snappy o Zstandard deben agregar dependencias explícitas para dichos algoritmos. Para obtener más información, consulte la sección "Dependencias de los algoritmos de compresión" de esta guía.
Especificar algoritmos de compresión
Puedes habilitar la compresión para la conexión a tu instancia de MongoDB al especificar los algoritmos de una de las siguientes formas:
Utilice el parámetro
compressorsen su cadena de conexión.Encadena el método
compressorList()al métodoMongoClientSettings.builder().
Seleccione el Connection String o la pestaña MongoClientSettings para ver la sintaxis correspondiente:
Incluya los siguientes parámetros en su cadena de conexión para habilitar la compresión:
Nombre de la opción | Tipo | Descripción |
|---|---|---|
| string | Especifica uno o más algoritmos de compresión que el controlador intentará usar para comprimir las solicitudes enviadas a la instancia de MongoDB conectada. Los valores posibles son: Por defecto: |
| entero | Especifica el grado de compresión que Zlib utiliza para reducir el tamaño de las solicitudes a la instancia de MongoDB conectada. El nivel puede variar de Por defecto: |
A continuación se especifica el orden en que el controlador intentará comprimir las solicitudes antes de enviarlas:
ConnectionString connectionString = new ConnectionString( "mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd"); MongoClient client = MongoClients.create(connectionString);
Para obtener más información sobre estos parámetros, consulte la documentación de la API ConnectionString.
Encadene los siguientes métodos a su constructor MongoClientSettings para modificar el comportamiento de compresión del controlador:
Método | Descripción |
|---|---|
| Establece los compresores que se utilizarán para comprimir mensajes en el servidor. |
MongoClientSettings settings = MongoClientSettings.builder() .compressorList(Arrays.asList(MongoCompressor.createSnappyCompressor(), MongoCompressor.createZlibCompressor(), MongoCompressor.createZstdCompressor())) .build(); MongoClient client = MongoClients.create(settings);
Para obtener más información sobre los métodos encadenados, consulte la documentación de la API MongoClientSettings.Builder.
Dependencias del algoritmo de compresión
El JDK admite de forma nativa la compresión Zlib. Sin embargo, Snappy y Zstandard dependen de implementaciones de Java de código abierto. Para obtener más información sobre estas implementaciones, consulte los siguientes repositorios de GitHub:
Documentación de la API
Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API: