文档菜单
文档首页
/ / /
Scala
/ /

压缩

在本页

  • 使用ConnectionString指定压缩
  • 使用MongoClientSettings指定压缩
  • 依赖项

Scala驱动程序支持对MongoDB服务器消息的压缩。驱动程序实现了MongoDB服务器支持的三个算法。

  • Snappy:当连接到运行3.4及以上版本的MongoDB服务器时,可以使用Snappy压缩。

  • Zlib:当连接到运行3.6及以上版本的MongoDB服务器时,可以使用Zlib压缩。

  • Zstandard:当连接到运行4.2及以上版本的MongoDB服务器时,可以使用Zstandard压缩。

驱动程序将根据服务器在“hello”命令响应中声明的功能协商使用哪种,如果有的话,压缩算法。hello命令响应。

包含以下导入语句

import org.mongodb.scala._

要在ConnectionString中指定压缩,请将压缩器作为连接字符串的一部分指定。

以下代码指定了Snappy压缩算法

val mongoClient: MongoClient = MongoClient("mongodb://localhost/?compressors=snappy")

以下代码指定了Zlib压缩算法

val mongoClient: MongoClient = MongoClient("mongodb://localhost/?compressors=zlib")

以下代码指定了Zstandard压缩算法

val mongoClient: MongoClient = MongoClient("mongodb://localhost/?compressors=zstd")

以下代码指定了多个压缩算法

val mongoClient: MongoClient = MongoClient("mongodb://localhost/?compressors=snappy,zlib,zstd")

在所有情况下,驱动程序使用服务器支持的列表中的第一个压缩器。

包含以下导入语句

import org.mongodb.scala._
import scala.collection.JavaConverters._

要在MongoClientSettings实例中指定压缩,将compressors属性设置为MongoCompressor实例的列表。

以下代码指定了Snappy压缩算法

val settings = MongoClientSettings.builder()
.compressorList(List(MongoCompressor.createSnappyCompressor).asJava)
.build()
val client = MongoClient(settings)

以下代码指定了Zlib压缩算法

val settings = MongoClientSettings.builder()
.compressorList(List(MongoCompressor.createZlibCompressor).asJava)
.build()
val client = MongoClient(settings)

以下代码指定了Zstandard压缩算法

val settings = MongoClientSettings.builder()
.compressorList(List(MongoCompressor.createZstdCompressor).asJava)
.build()
val client = MongoClient(settings)

以下代码指定了多个压缩算法

val settings = MongoClientSettings.builder()
.compressorList(List(MongoCompressor.createSnappyCompressor,
MongoCompressor.createZlibCompressor,
MongoCompressor.createZstdCompressor).asJava)
.build()
val client = MongoClient(settings)

与使用连接字符串的配置一样,驱动程序使用列表中服务器支持的第一个压缩器。

由于 JDK 没有内置对 Snappy 或 Zstandard 的支持,驱动程序依赖于现有的开源 Snappy 和 Zstandard 实现。请参阅 snappy-java GitHub 仓库zstd-java GitHub 仓库 以获取详细信息。

返回

身份验证