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

网络压缩

在此页面上

  • 指定压缩算法
  • 压缩算法依赖关系

MongoDB Kotlin 驱动程序提供了一个连接选项来压缩消息,这减少了 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.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() forzlib 压缩

  • 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

后退

指定 MongoClient 设置