网络压缩
Overview
在本指南中,您可以了解如何使用 Go 驱动程序启用网络压缩。 您可以指定客户端选项来压缩消息,从而减少 MongoDB 和应用程序之间通过网络传递的数据量。
Go 驱动程序支持以下压缩算法:
如果您指定多种压缩算法,驱动程序会选择列表中 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 文档