文档菜单
文档首页
/ / /
Go 驱动
/ /

网络压缩

本页内容

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

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

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

  1. Snappy:MongoDB 3.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()方法,作为字符串数组

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 中的连接指南

  • 服务器手册中的连接字符串压缩选项

  • zlib包 Go文档

返回

连接指南