Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ / /
Kotlin Sync 驱动程序
/ /

压缩网络流量

在本指南中,您可以学习;了解如何使用Kotlin Sync驾驶员启用网络压缩。该驾驶员提供了一个连接选项来压缩消息,从而减少了MongoDB和您的应用程序之间通过网络传递的数据量。

驱动程序支持以下压缩算法:

  • snappy

  • zlib

  • Zstandard

如果您指定多种压缩算法,驱动程序会选择 MongoDB 实例支持的列表中的第一个算法。

注意

需要 Snappy 或 Zstandard 压缩的应用程序必须为这些算法添加显式依赖项。要学习;了解更多信息,请参阅本指南的压缩算法依赖项部分。

您可以通过以下方式之一指定算法,为MongoDB实例的连接启用压缩:

  • compressorList() 方法链接到 MongoClientSettings.builder() 方法。

  • 在连接 URI 中使用 compressors 参数。

以下示例演示了如何在连接到MongoDB时指定所有可用的压缩器。选择 MongoClientSettingsConnection 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 作为其中一种压缩算法,则还可以使用 MongoCompressor.LEVEL属性来指定压缩级别。此选项接受 -19 之间的整数值:

  • -1:默认压缩(通常为 6

  • 0:无压缩

  • 1:速度最快,但压缩率最低

  • 9:压缩最佳,但速度最慢

以下示例演示如何指定 zlib 压缩器的压缩级别。选择 MongoClientSettingsConnection 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 文档:

后退

连接选项

在此页面上