网络压缩
Overview
在本指南中,您可以了解如何使用 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
依赖项中。
启用网络压缩
您可以通过以下方式指定压缩程序,在Client
实例上启用压缩:
将
compressors
参数添加到连接string中。 要查看以这种方式启用压缩的示例,请参阅连接string部分。设置
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
字段,然后在创建客户端时传递选项。
compressors
字段采用Vec<Compressor>
类型的值。 Compressor
类型具有以下可能的值:
Compressor::Snappy
Compressor::Zstd { level: <integer> }
Compressor::Zlib { level: <integer> }
对于具有level
字段的压缩器,将该值设置为None
以指示默认级别。 下表描述了 Zlib 和 Zstandard 的默认和可接受的压缩级别:
Compressor | 默认级别 | 已接受级别 |
---|---|---|
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)?;
更多信息
有关本指南中概念的更多信息,请参阅以下文档:
手册中的 string连接 压缩选项MongoDB Server
API 文档
要进一步了解本指南所提及的任何方法或类型,请参阅以下 API 文档: