对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

压缩网络流量

MongoDB 驱动程序可以压缩与 MongoDB Server 之间发送和接收的消息。这会减少每次操作的数据传输量。压缩可以提高在受限网络上的性能,并降低与运行 MongoDB Atlas 相关的数据传输费用。

压缩在传输协议级别运行,因此它适用于您的应用程序执行的每项操作。如果您指定了多种算法,驱动程序将使用列表中 MongoDB Server 也支持的第一种算法。

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

MongoDB Atlas 对跨云区域、云提供商以及您的基础设施与 MongoDB Atlas 之间的数据传输收费。网络压缩可减少您的应用程序发送和接收的数据量,这可以降低这些数据传输费用。要了解有关定价的更多信息,请参阅数据传输费用。

网络压缩还能提高生产力。压缩后的消息在网络上传输所需的时间更短,这可以缩短应用程序的响应时间。压缩还可以减少 MongoDB 流量所使用的带宽,从而为同一网络上的其他应用程序留出更多可用带宽。

当您选择压缩算法时,请考虑以下指南:

  • 使用 Zstandard 可在压缩效率和资源使用之间取得平衡。对于大多数应用程序,Zstandard 是一个不错的默认选择。

  • 对于对延迟敏感且需要最小计算开销的应用程序,请使用 Snappy。

  • 使用 zlib 以实现 MongoDB 驱动程序和环境之间的广泛兼容性。

提示

监控 CPU 使用率

压缩以 CPU 使用率为代价换取网络带宽。启用网络压缩后,请监控应用程序的 CPU 利用率,以确认这种权衡是否对您的工作负载有利。要了解有关这些权衡的更多信息,请参阅MongoDB 中的 CPU 利用率和网络压缩博客文章。

下表列出了每个压缩算法支持的最低驱动程序和 MongoDB Server 版本:

压缩算法
最低驱动程序版本
最低服务器版本

1.7

4.2

1.7

4.2

1.15

4.2

要对您的 MongoDB 连接启用网络压缩,请构建 C 驱动程序并安装所需的依赖项,并指定要使用的压缩算法。

下表列出了每个算法以及它所需的依赖项(如有):

压缩算法
依赖项

snappy

安装 Snappy 库。有关安装说明,请参阅 snappy GitHub 存储库。

zlib

无。驱动程序默认捆绑 zlib。

Zstandard

安装 Zstandard 库。有关安装说明,请参阅 zstd GitHub 存储库。

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

  • 将 compressors 参数添加到您的连接字符串中

  • 在 mongoc_uri_t 结构体上设置压缩器

选择 Connection String 或 URI Option 标签页以查看示例,该示例指定了所有可用的压缩器:

client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?compressors=snappy,zlib,zstd");

使用 zlib 算法时,您可以指定压缩级别从 -1 到 9。较低级别通常提供更快的压缩,压缩比较低;较高级别提供更慢的压缩,压缩比较高。

选择“Connection String”或“URI Option”标签页,查看为“zlib”压缩器指定压缩级别的示例:

client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?compressors=zlib&zlibCompressionLevel=<zlib_compression_level");

如需进一步了解本页中使用的类型和函数,请参阅以下 API 文档: