ネットワーク圧縮
Overview
このガイドでは、Go ドライバーを使用してネットワーク圧縮を有効にする方法を学習できます。 クライアント オプションを指定してメッセージを圧縮することで、MongoDB とアプリケーション間でネットワーク経由で渡されるデータ量を減らすことができます。
Go ドライバーは次の圧縮アルゴリズムをサポートしています。
複数の圧縮アルゴリズムを指定した場合、ドライバーは MongoDB 配置でサポートされているリスト内の最初の を選択します。
Snappy または Zstandard 圧縮アルゴリズムを使用するには、依存関係を追加する必要があります。 詳細については、このガイドの「圧縮アルゴリズムの依存関係」セクションを参照してください。
圧縮アルゴリズムを指定する
MongoDB 配置への接続の圧縮を有効にするには、次の 2 つの方法のいずれかのアルゴリズムを指定します。
接続stringで圧縮アルゴリズムを設定します。
ClientOptions
インスタンスで圧縮アルゴリズムを設定します。
接続文字列 を使用して圧縮を有効にするには、compressors
パラメータの値として圧縮アルゴリズムを 接続stringに追加しstring 。 カンマで区切られた1つ以上の圧縮アルゴリズムを指定できます。
opts := options.Client().ApplyURI("mongodb://localhost:27017/?compressors=snappy,zlib,zstd") client, _ := mongo.Connect(context.TODO(), opts)
ClientOptions を指定して圧縮を有効にするには、 インスタンスに接続する場合は、1 つ以上の圧縮アルゴリズムを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"
詳細情報
このガイドの概念の詳細については、次のドキュメントを参照してください。
サーバー マニュアルの「接続string圧縮オプション」を参照してください
zlib パッケージ Go のドキュメント