文档菜单
文档首页
/ / /
Java 同步驱动程序
/ /

网络压缩

您可以通过启用驱动程序选项来压缩消息,这可以减少 MongoDB 和您的应用程序之间通过网络传输的数据量。

驱动程序支持以下算法

  1. Snappy:从MongoDB 3.4版本开始可用。

  2. Zlib:从MongoDB 3.6版本开始可用。

  3. Zstandard:从MongoDB 4.2版本开始可用。

驱动程序测试以下库的以下版本

  • org.xerial.snappy:snappy-java:1.1.10.3

  • com.github.luben:zstd-jni:1.5.5-3

如果您指定了多个压缩算法,驱动程序将选择连接的MongoDB实例支持的列表中的第一个。

注意

需要使用Snappy或Zstandard压缩的应用程序必须为这些算法添加显式依赖项

您可以通过以下两种方式之一启用与您的MongoDB实例的连接压缩:在连接字符串中使用ConnectionString添加参数,或在MongoClientSettings.Builder类中调用方法。

要使用ConnectionString启用压缩,请将参数compressors添加到传递给MongoClients.create()的连接字符串中。您可以指定一个或多个压缩算法,使用逗号分隔它们

ConnectionString connectionString = new ConnectionString("mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd");
MongoClient mongoClient = MongoClients.create(connectionString);

使用以下字符串指定压缩算法

要启用压缩,请使用MongoClientSettings,将compressorList()构建器方法传递一个MongoCompressor实例列表。您可以在列表中指定一个或多个压缩算法

MongoClientSettings settings = MongoClientSettings.builder()
.compressorList(Arrays.asList(MongoCompressor.createSnappyCompressor(),
MongoCompressor.createZlibCompressor(),
MongoCompressor.createZstdCompressor()))
.build();
MongoClient client = MongoClients.create(settings);

The JDK supports Zlib compression natively, but Snappy and Zstandard depend on open source implementations. See snappy-java and zstd-java for details.

返回

MongoClient 设置