Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Comprimir el tráfico de la red

Los driver de MongoDB pueden comprimir los mensajes enviados y recibidos de MongoDB Server. Esto reduce la cantidad de transferencia de datos para cada operación. La compresión puede mejorar el rendimiento en redes restringidas y reducir los costos de transferencia de datos asociados con la ejecución de MongoDB Atlas.

La compresión opera a nivel de protocolo de red, por lo que se aplica a todas las operaciones que realiza su aplicación. Si especifica más de un algoritmo, el controlador utilizará el primero de la lista que también sea compatible con MongoDB Server.

Los drivers de MongoDB admiten los siguientes algoritmos de compresión:

MongoDB Atlas cobra por los datos transferidos entre regiones de la nube, proveedores de la nube y entre su infraestructura y MongoDB Atlas. La compresión de red reduce la cantidad de datos que su aplicación envía y recibe, lo que puede disminuir estos costos de transferencia de datos. Para obtener más información sobre los precios, consulte Costos de transferencia de datos.

La compresión de red también ofrece ventajas en cuanto a productividad. Los mensajes comprimidos tardan menos en transferirse a través de la red, lo que puede mejorar los tiempos de respuesta de su aplicación. Además, la compresión reduce el ancho de banda que utiliza el tráfico de MongoDB, lo que deja más ancho de banda disponible para otras aplicaciones en la misma red.

Cuando elijas un algoritmo de compresión, considera las siguientes directrices:

  • Utilice Zstandard para lograr un equilibrio entre la eficiencia de compresión y el uso de recursos. Zstandard es una buena opción predeterminada para la mayoría de las aplicaciones.

  • Utilice Snappy para aplicaciones sensibles a la latencia que requieren una sobrecarga computacional mínima.

  • Utilice Zlib para una amplia compatibilidad con los controladores y entornos de MongoDB.

Tip

Monitorear el uso de la CPU

La compresión sacrifica ancho de banda de red a cambio de un mayor uso de la CPU. Tras habilitar la compresión de red, supervise el uso de la CPU de su aplicación para confirmar que esta compensación beneficia su carga de trabajo. Para obtener más información sobre estas compensaciones, consulte la entrada del blog «Uso de la CPU y compresión de red en MongoDB».

La siguiente tabla enumera la versión mínima de driver compatible y de MongoDB Server para cada algoritmo de compresión:

Algoritmo de compresión
Versión mínima del controlador
Versión mínima del servidor

3.6

4.2

3.6

4.2

3.11

4.2

Para habilitar la compresión de red para su conexión a MongoDB, instale las dependencias necesarias y especifique los algoritmos de compresión que desea utilizar.

La siguiente tabla enumera cada algoritmo y la dependencia que requiere, si la hay:

Algoritmo de compresión
Dependencia

rápido

snappy-javaDescarga, un envoltorio Java JNI para la biblioteca Snappy. Para instalarlo, consulta snappy-java en Maven Central.

Zlib

Ninguno. El controlador admite de forma nativa la compresión Zlib.

Zstandard

zstd-jniDescarga, un envoltorio Java JNI para la biblioteca Zstandard. Para instalarlo, consulta zstd-jni en Maven Central.

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 compressors en su cadena de conexión.

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

Selecciona la pestaña Connection String o 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

compressors

string

Especifica uno o varios algoritmos de compresión que el driver intentará unir para comprimir las solicitudes enviadas a la instancia conectada de MongoDB. Los valores posibles incluyen: zlib, snappy y zstd.

Por defecto: null

zlibCompressionLevel

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 -1 de 9 a, donde los valores más bajos comprimen más rápido (pero dan como resultado solicitudes más grandes) y los valores más altos comprimen más lento (pero dan como resultado solicitudes más pequeñas).

Por defecto: null

Lo siguiente especifica el orden en el 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, consulta la Cadena de conexión documentación de la API.

Encadena los siguientes métodos a tu constructor MongoClientSettings para modificar el comportamiento de compresión del controlador:

Método
Descripción

compressorList()

Establece los compresores que se utilizarán para comprimir mensajes al 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 acerca de los métodos encadenados, consulta la documentación de la API de MongoClientSettings.Builder .

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