Docs 菜单
Docs 主页
/ / /
Go 驱动程序
/ /

网络压缩

在此页面上

  • Overview
  • 指定压缩算法
  • 压缩算法依赖关系
  • 更多信息
  • API 文档

在本指南中,您可以了解如何使用 Go 驱动程序启用网络压缩。 您可以指定客户端选项来压缩消息,从而减少 MongoDB 和应用程序之间通过网络传递的数据量。

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

  1. Snappy :在MongoDB3 中可用。4 及更高版本。

  2. Zlib:在 MongoDB 3.6 及更高版本中提供。

  3. Zstandard:在 MongoDB 4.2 及更高版本中提供。

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

您必须添加依赖项才能使用 Snappy 或 Zstandard 压缩算法。有关详细信息,请参阅本指南的压缩算法依赖项部分。

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

  • 在连接字符串中设置压缩算法。

  • ClientOptions实例中设置压缩算法。

要使用连接字符串启用压缩,请将压缩算法作为compressors参数的值添加到连接字符串中。 您可以指定一种或多种压缩算法,用逗号分隔:

opts := options.Client().ApplyURI("mongodb://localhost:27017/?compressors=snappy,zlib,zstd")
client, _ := mongo.Connect(context.TODO(), opts)

通过指定 ClientOptions 来启用压缩 实例,将一个或多个压缩算法作为SetCompressors() string数组传递给 方法:

opts := options.Client().SetCompressors([]string{"snappy", "zlib", "zstd"})
client, _ := mongo.Connect(context.TODO(), opts)

使用以下字符串指定压缩算法:

要将 Snappy 压缩算法添加到您的应用程序,请运行以下代码:

go get github.com/golang/snappy

如要在应用程序中添加 Zstandard 压缩算法,请运行以下代码:

go get -u github.com/klauspost/compress

要将 Zlib 压缩算法添加到应用程序中,请导入内置的zlib包。 您必须将以下导入声明添加到使用 zlib 压缩实例化Client的应用程序文件中:

import "compress/zlib"

有关本指南中概念的更多信息,请参阅以下文档:

  • 《连接指南》中的“连接 URI

  • 手册中的 string连接 压缩选项MongoDB Server

  • zlib 包 Go 文档

后退

连接指南