Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Comprimir el tráfico de la red

En esta guía, aprenderá a usar el controlador Kotlin Sync 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 transfieren por la red entre MongoDB y su aplicación.

El controlador admite los siguientes algoritmos de compresión:

  • rápido

  • Zlib

  • Zstandard

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.

Puedes habilitar la compresión para la conexión a tu instancia de MongoDB al especificar los algoritmos de una de las siguientes formas:

  • Encadenar el compressorList() método al método MongoClientSettings.builder().

  • Utilice el parámetro compressors en su URI de conexión.

Los siguientes ejemplos demuestran cómo especificar todos los compresores disponibles al conectarse a MongoDB. Elija el MongoClientSettings o Connection URI pestaña para ver la sintaxis correspondiente:

val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString("<connection string>"))
.compressorList(
listOf(
MongoCompressor.createSnappyCompressor(),
MongoCompressor.createZlibCompressor(),
MongoCompressor.createZstdCompressor())
)
.build()
val mongoClient = MongoClient.create(settings)
val uri = ConnectionString("mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd")
val mongoClient = MongoClient.create(uri)

Si especificas zlib como uno de tus algoritmos de compresión, también puedes usar la propiedad MongoCompressor.LEVEL para especificar el nivel de compresión. Esta opción acepta un valor entero entre -1 y 9:

  • -1: Compresión por defecto (generalmente 6)

  • 0: Sin compresión

  • 1: Máxima velocidad pero la menor compresión

  • 9: Mejor compresión pero menor velocidad

Los siguientes ejemplos muestran cómo especificar un nivel de compresión para el compresor zlib. Seleccione la pestaña MongoClientSettings o Connection URI para ver la sintaxis correspondiente:

val zlib = MongoCompressor.createZlibCompressor()
val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString(uri))
.compressorList(listOf(zlib.withProperty(MongoCompressor.LEVEL, <level>)))
.build()
val mongoClient = MongoClient.create(settings)
val uri = "mongodb://<db_username>:<db_password>@<hostname>:<port>/?" +
"compressors=zlib" +
"zlibCompressionLevel=<zlib compression level>"
val mongoClient = MongoClient.create(uri)

El JDK admite de forma nativa la Zlib compresión zlib. Sin embargo, Snappy y Zstandard dependen de implementaciones Java de código abierto. Para más información sobre estas implementaciones, consulta los siguientes repositorios de GitHub:

Para aprender más sobre cualquiera de los métodos o tipos analizados en esta guía, consulta la siguiente documentación de API:

Volver

Opciones de conexión

En esta página