网络压缩
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()
方法
在 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 压缩,但 Snappy 和 Zstandard 依赖于开源实现。详见 snappy-java 和 zstd-java。