Docs 菜单
Docs 主页
/ / /
Kotlin 协程
/ /

网络压缩

MongoDB Kotlin 驱动程序提供了一个连接选项来压缩消息,这减少了 MongoDB 和应用程序之间通过网络传递的数据量。

驱动程序支持以下算法:

  1. snappy

  2. zlib

  3. Zstandard

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

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

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

如果指定多种压缩算法,驱动程序会选择其连接的 MongoDB 实例支持的第一个算法。

注意

如果应用程序需要 Snappy 或 Zstandard 压缩,则必须为这些算法添加显式依赖项。

您可以通过以下方式指定算法来启用连接压缩:

  • compressors参数添加到ConnectionString实例

  • MongoClientSettings 构建器调用 compressorList() 方法

要在ConnectionString实例中对连接启用压缩,请指定 compressors 参数。您可以为 compressors 参数指定以下一个或多个值:

以下示例演示如何指定 Snappy、Zlib 和 Zstandard 作为连接的压缩算法:

// Replace the placeholders with values from your MongoDB deployment's connection string
val connectionString = ConnectionString("mongodb+srv://<user>:<password>@<cluster-url>/?compressors=snappy,zlib,zstd")
// Create a new client with your settings
val mongoClient = MongoClient.create(connectionString)

要在MongoClientSettings中启用压缩,请调用CompressorList()构建器方法并将一个或多个MongoCompressor实例作为参数传递。

您可以通过从MongoCompressor调用以下方法来指定压缩算法:

  • createSnappyCompressor() 用于 Snappy 压缩

  • createZlibCompressor() 用于zlib压缩

  • createZstdCompressor() 用于 Zstandard 压缩

以下示例演示如何指定 Snappy、Zlib 和 Zstandard 作为连接的压缩算法:

// Replace the placeholder with your MongoDB deployment's connection string
val uri = "<connection string>"
val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString(uri))
.compressorList(
listOf(
MongoCompressor.createSnappyCompressor(),
MongoCompressor.createZlibCompressor(),
MongoCompressor.createZstdCompressor())
)
.build()
// Create a new client with your settings
val mongoClient = MongoClient.create(settings)

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

后退

限制执行时间

在此页面上