El controlador Kotlin de MongoDB proporciona una opción de conexión para comprimir mensajes. Esto reduce la cantidad de datos que pasan a través de la red entre MongoDB y su aplicación.
El controlador admite los siguientes algoritmos:
Zstandard: disponible en MongoDB.4 2 y posteriores
El controlador prueba las siguientes versiones de estas bibliotecas:
org.xerial.snappy:snappy-java:1.1.8.4com.github.luben:zstd-jni:1.5.5-2
Si especifica varios algoritmos de compresión, el controlador selecciona el primero compatible con la instancia de MongoDB a la que está conectado el controlador.
Nota
Si su aplicación requiere compresión Snappy o Zstandard, debe agregar dependencias explícitas para esos algoritmos.
Especificar algoritmos de compresión
Puede habilitar la compresión en su conexión especificando los algoritmos de las siguientes maneras:
Agregar el parámetro
compressorsa su instanciaConnectionStringLlamar al método
compressorList()desde el constructorMongoClientSettings
Para habilitar la compresión en su conexión en una instancia de ConnectionString, especifique el compressors parámetro. Puede especificar uno o más de los siguientes valores para el compressors parámetro:
"snappy"para compresión Snappy"zlib"para la compresión Zlib"zstd"para compresión Zstandard
El siguiente ejemplo muestra cómo especificar Snappy, Zlib y Zstandard como algoritmos de compresión para una conexión:
// Replace the placeholders with values from your MongoDB deployment's connection string val connectionString = ConnectionString("mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd") // Create a new client with your settings val mongoClient = MongoClient.create(connectionString)
Para habilitar la compresión dentro de MongoClientSettings, llame al método de construcción compressorList() y pase una o más instancias de MongoCompressor como parámetro.
Puede especificar algoritmos de compresión llamando a los siguientes métodos desde MongoCompressor:
createSnappyCompressor()para compresión SnappycreateZlibCompressor()para la compresión ZlibcreateZstdCompressor()para compresión Zstandard
El siguiente ejemplo muestra cómo especificar Snappy, Zlib y Zstandard como algoritmos de compresión para una conexión:
// Replace the placeholder with your MongoDB deployment's connection string val uri = "<connection string>" val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .compressorList( listOf( MongoCompressor.createSnappyCompressor(), MongoCompressor.createZlibCompressor(), MongoCompressor.createZstdCompressor()) ) .build() // Create a new client with your settings val mongoClient = MongoClient.create(settings)
Dependencias del algoritmo de compresión
El JDK admite la compresión Zlib de forma nativa, pero Snappy y Zstandard dependen de implementaciones de código abierto.Consulte snappy-java y zstd-java para obtener más información.