网络压缩
概述
在本指南中,您可以学习如何使用Rust驱动程序配置您的MongoDB连接的网络压缩。
网络压缩是一种功能,允许您压缩和解压缩应用程序与MongoDB之间发送的消息,从而减少通过网络传输的总数据量。
驱动程序支持以下压缩器
注意
压缩程序选择
如果您指定了在您的连接上使用的多个压缩程序,则驱动程序将选择由驱动程序连接的MongoDB实例支持的第一个。
本指南包括以下部分
添加压缩功能标志
要使用压缩程序,请将相关的功能标志添加到您的项目中的Cargo.toml
文件中,以添加到mongodb
依赖项的功能列表。
选择您首选压缩程序的选项卡,以了解如何将必要功能标志添加到您的mongodb
依赖项
[dependencies.mongodb] version = "3.1.0" features = ["snappy-compression"]
[dependencies.mongodb] version = "3.1.0" features = ["zlib-compression"]
[dependencies.mongodb] version = "3.1.0" features = ["zstd-compression"]
提示
要指定多个压缩程序,您必须将每个压缩程序的功能标志添加到您的mongodb
依赖项。
启用网络压缩
您可以通过指定压缩程序以以下方式在您的 客户端
实例上启用压缩:
将
compressors
参数添加到您的连接字符串中。要查看通过这种方式启用压缩的示例,请参阅 连接字符串 部分。设置
ClientOptions
实例的compressors
字段。然后您可以在创建Client
时将选项传递给with_options()
方法。要查看通过这种方式启用压缩的示例,请参阅 ClientOptions 部分。
连接字符串
要通过连接字符串启用压缩,请指定 compressors
参数。您可以为 compressors
参数指定以下值之一或多个
"snappy"
用于 Snappy 压缩"zlib"
用于 Zlib 压缩"zstd"
用于 Zstandard 压缩
以下示例显示了如何指定 Snappy、Zlib 和 Zstandard 作为连接的压缩程序
let uri = "mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd"; let client = Client::with_uri_str(uri).await?;
要了解更多关于设置客户端选项的信息,请参阅连接选项.
ClientOptions
要在您的 ClientOptions
实例中启用压缩,请设置 compressors
字段,然后在创建客户端时传递这些选项。
“压缩器”字段接受类型为 Vec
的值。Compressor
类型有以下可能的值
Compressor::Snappy
Compressor::Zstd { level:
} Compressor::Zlib { level:
}
对于具有 level
字段的压缩器,将值设置为 None
以表示默认级别。以下表格描述了 Zlib 和 Zstandard 的默认和接受压缩级别
压缩器 | 默认级别 | 接受的级别 |
---|---|---|
Zlib | 6 | 从 0 到 9 或 None |
Zstandard | 3 | 从 1 到 22 或 None |
更高的 level
值会导致更多的压缩,但速度较慢。
以下示例显示了如何指定 Snappy、Zlib 和 Zstandard 作为连接的压缩程序
let uri = "<connection string>"; let mut client_options = ClientOptions::parse(uri).await?; let compressors = vec![ Compressor::Snappy, Compressor::Zstd { level: Some(1) }, Compressor::Zlib { level: None } ]; client_options.compressors = Some(compressors); let client = Client::with_options(client_options)?;
更多信息
有关本指南中概念更多信息,请参阅以下文档
API 文档
要了解更多关于本指南中提到的任何方法或类型的信息,请参阅以下 API 文档