Overview
在本指南中,您可以学习;了解如何使用Kotlin Sync驾驶员启用网络压缩。该驾驶员提供了一个连接选项来压缩消息,从而减少了MongoDB和您的应用程序之间通过网络传递的数据量。
驱动程序支持以下压缩算法:
如果您指定多种压缩算法,驱动程序会选择 MongoDB 实例支持的列表中的第一个算法。
注意
需要 Snappy 或 Zstandard 压缩的应用程序必须为这些算法添加显式依赖项。要学习;了解更多信息,请参阅本指南的压缩算法依赖项部分。
指定压缩算法
您可以通过以下方式之一指定算法,为MongoDB实例的连接启用压缩:
将
compressorList()
方法链接到MongoClientSettings.builder()
方法。在连接 URI 中使用
compressors
参数。
以下示例演示了如何在连接到MongoDB时指定所有可用的压缩器。选择 MongoClientSettings 或 Connection URI标签页,查看相应的语法:
val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString("<connection string>")) .compressorList( listOf( MongoCompressor.createSnappyCompressor(), MongoCompressor.createZlibCompressor(), MongoCompressor.createZstdCompressor()) ) .build() val mongoClient = MongoClient.create(settings)
val uri = ConnectionString("mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd") val mongoClient = MongoClient.create(uri)
指定zlib压缩级别
如果您指定 zlib
作为其中一种压缩算法,则还可以使用 MongoCompressor.LEVEL
属性来指定压缩级别。此选项接受 -1
和 9
之间的整数值:
-1:默认压缩(通常为
6
)0:无压缩
1:速度最快,但压缩率最低
9:压缩最佳,但速度最慢
以下示例演示如何指定 zlib
压缩器的压缩级别。选择 MongoClientSettings 或 Connection URI标签页,查看相应的语法:
val zlib = MongoCompressor.createZlibCompressor() val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .compressorList(listOf(zlib.withProperty(MongoCompressor.LEVEL, <level>))) .build() val mongoClient = MongoClient.create(settings)
val uri = "mongodb://<db_username>:<db_password>@<hostname>:<port>/?" + "compressors=zlib" + "zlibCompressionLevel=<zlib compression level>" val mongoClient = MongoClient.create(uri)
压缩算法依赖关系
JDK 原生支持zlib压缩。但是,Snappy 和 Zstandard 依赖于开源Java实现。要学习;了解有关这些实施的更多信息,请参阅以下Github存储库:
API 文档
要进一步了解本指南所讨论的任何方法或类型,请参阅以下 API 文档: