Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Comprimir el tráfico de la red

En esta guía, puedes aprender a usar el controlador Kotlin Sync para habilitar la compresión de red. El driver ofrece una opción de conexión para comprimir mensajes, lo que reduce la cantidad de datos enviados a través de la red entre MongoDB y tu 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 tu instancia de MongoDB.

Nota

Las aplicaciones que requieren compresión Snappy o Zstandard deben agregar dependencias explícitas para esos algoritmos. Para obtener más información, consulte la sección Dependencias del algoritmo 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:

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

  • Usa el parámetro compressors en tu 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 demuestran 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