Docs 菜单
Docs 主页
/ / /
java sync
/ /

网络压缩

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

驱动程序支持以下算法:

  1. Snappy :在 MongoDB 3.4 中及更高版本中可用。

  2. Zlib:在 MongoDB 3.6 及更高版本中提供。

  3. Zstandard:在 MongoDB 4.2 及更高版本中提供。

驱动程序针对这些库的以下版本进行测试:

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

  • com.github.luben:zstd-jni:1.5.2-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,传递言压器 List() MongoCompressor实例。您可以在列表中指定一种或多种压缩算法:

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

JDK 本身支持 Zlib 压缩,但 SnappyZstandard 依赖于开源实现。详见 snappy-javazstd-java

后退

指定 MongoClient 设置