文档菜单
文档首页
/ / /
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() 方法

要在连接字符串实例中启用连接压缩,请指定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)

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

返回

MongoClient设置