网络压缩
概述
在这份指南中,您可以学习如何使用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()
方法,作为字符串数组
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"
附加信息
有关本指南中的概念更多信息,请参阅以下文档