网络压缩
MongoDB Kotlin驱动程序提供了一种压缩消息的连接选项,这可以减少MongoDB和您的应用程序之间通过网络传输的数据量。
驱动程序支持以下算法
驱动程序针对以下版本的库进行测试
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.