文档菜单
文档首页
/ / /
Java反应式流驱动程序
/ /

压缩

本页内容

  • 使用ConnectionStrings指定压缩
  • 使用MongoClientSettings指定压缩
  • 依赖项

Java反应式流驱动程序支持对MongoDB服务器的消息进行压缩。驱动程序实现了MongoDB服务器支持的三个算法

  • Snappy: 当连接到运行3.4版本及更高版本的MongoDB服务器时,可以使用Snappy压缩。

  • Zlib:当连接到运行3.6及以上版本的MongoDB服务器时,可以使用Zlib压缩。

  • Zstandard:当连接到运行4.2及以上版本的MongoDB服务器时,可以使用Zstandard压缩。

驱动程序将根据服务器在“hello”命令响应中宣布的能力协商使用哪种压缩算法(如果有的话)。hello 命令响应。

包含以下导入语句

import com.mongodb.ConnectionString;
import com.mongodb.reactivestreams.client.MongoClients;
import com.mongodb.reactivestreams.client.MongoClient;

要在ConnectionString中指定压缩,请将压缩程序作为连接字符串的一部分指定。

以下代码指定了Snappy压缩算法

ConnectionString connectionString =
new ConnectionString("mongodb://localhost/?compressors=snappy");
MongoClient mongoClient = MongoClients.create(connectionString);

以下代码指定了Zlib压缩算法

ConnectionString connectionString =
new ConnectionString("mongodb://localhost/?compressors=zlib");
MongoClient mongoClient = MongoClients.create(connectionString);

以下代码指定了Zstandard压缩算法

ConnectionString connectionString =
new ConnectionString("mongodb://localhost/?compressors=zstd");
MongoClient mongoClient = MongoClients.create(connectionString);

以下代码指定了多个压缩算法

ConnectionString connectionString =
new ConnectionString("mongodb://localhost/?compressors=snappy,zlib,zstd");
MongoClient mongoClient = MongoClients.create(connectionString);

在所有情况下,驱动程序都将使用服务器支持的列表中的第一个压缩程序。

包含以下导入语句

import com.mongodb.MongoClientSettings;
import com.mongodb.MongoCompressor;
import java.util.Arrays;

要在MongoClientSettings实例中指定压缩,将compressors属性设置为MongoCompressor实例的列表。

以下代码指定了Snappy压缩算法

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

以下代码指定了Zlib压缩算法

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

以下代码指定了Zstandard压缩算法

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

以下代码指定了多个压缩算法

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

与使用URI的配置一样,驱动程序使用列表中服务器支持的第一个压缩器。

由于JDK没有内置对Snappy或Zstandard的支持,驱动程序依赖于现有的开源Snappy和Zstandard实现。有关详细信息,请参阅snappy-java GitHub仓库zstd-java GitHub仓库

返回

身份验证