Docs Menu
Docs Home
/ / /
Rust ドライバー
/ /

ネットワーク圧縮

項目一覧

  • Overview
  • 圧縮機能フラグを追加する
  • ネットワーク圧縮を有効にする
  • 接続文字列
  • ClientOptions
  • 詳細情報
  • API ドキュメント

このガイドでは、Rust ドライバーを使用して MongoDB への接続のネットワーク圧縮を構成する方法を学習できます。

ネットワーク圧縮は、アプリケーションと MongoDB 間で送信されるメッセージを圧縮および解凍して、ネットワークを介して渡されるデータの総量を減らす機能です。

ドライバーは次のコンプレッサーをサポートしています。

  1. Snappy : MongoDB3 で利用可能です。4 以降

  2. zlib:MongoDB3 .6 以降で利用可能

  3. Zstandard : MongoDB で利用可能4 。2 以降

注意

コンプレッサーの選択

接続で使用するコンプレッサーを複数指定した場合、ドライバーは、ドライバーが接続されている MongoDB インスタンスでサポートされている最初のコンプレッサーを選択します。

このガイドには、次のセクションが含まれています。

  • 圧縮機能フラグの追加 では、さまざまなコンプレッサーのアプリケーションに機能フラグを追加する方法について説明します。

  • ネットワーク圧縮を有効にする では、 Clientインスタンスでネットワーク圧縮を有効にする方法について説明します。

  • 追加情報では、このガイドで言及されている型とメソッドのリソースとAPIドキュメントへのリンクを提供します

コンプレッサーを使用するには、プロジェクトのCargo.tomlファイル内のmongodb依存関係の機能リストに関連する機能フラグを追加します。

必要な機能フラグをmongodb依存関係に追加する方法を確認するには、希望するコンプレッサーのタブを選択します。

[dependencies.mongodb]
version = "3.1.1"
features = ["snappy-compression"]
[dependencies.mongodb]
version = "3.1.1"
features = ["zlib-compression"]
[dependencies.mongodb]
version = "3.1.1"
features = ["zstd-compression"]

Tip

複数のコンプレッサーを指定するには、各コンプレッサーの機能フラグをmongodb依存関係に追加する必要があります。

次の方法でコンプレッサーを指定して、 Clientインスタンスで圧縮を有効にできます。

  • 接続stringに compressors パラメータを追加します。 この方法で圧縮を有効にする例については、「接続string 」セクションを参照してください。

  • ClientOptionsインスタンスのcompressorsフィールドを設定する。 次に、 Clientをインスタンス化するときに、オプションをwith_options()メソッドに渡すことができます。 この方法で圧縮を有効にする例については、「 ClientOptionsセクション 」を参照してください。

接続stringを使用して圧縮を有効にするには、compressors パラメータを指定します。 compressorsパラメーターには、次の値を 1 つ以上指定できます。

  • "snappy" 、Snappy 圧縮

  • "zlib" 、 zlib圧縮用

  • "zstd" Zstandard 圧縮

次の例は、接続のコンプレッサーとしてSnappy 、 zlib 、および Zstandard を指定する方法を示しています。

let uri = "mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd";
let client = Client::with_uri_str(uri).await?;

クライアント オプションの設定の詳細については、 接続オプション に関するガイドを参照してください。

ClientOptionsインスタンス内で圧縮を有効にするには、 compressorsフィールドを設定し、クライアントの作成時にオプションを渡します。

compressorsフィールドはVec<Compressor>型の値を取ります。 Compressor型には、次の可能な値があります。

  • Compressor::Snappy

  • Compressor::Zstd { level: <integer> }

  • Compressor::Zlib { level: <integer> }

levelフィールドを持つコンプレッサーの場合、デフォルトのレベルを示すには、値をNoneに設定します。 次の表は、 zlibと Zstandard のデフォルトおよび許容される圧縮レベルについて説明したものです。

コンプレッサー
デフォルトのレベル
許容レベル

Zlib

6

0から9またはNoneまでの整数

Zstandard

3

1から22またはNoneまでの整数

levelの値が大きいほど、圧縮が行われますが、速度は遅くなります。

次の例は、接続のコンプレッサーとしてSnappy 、 zlib 、および Zstandard を指定する方法を示しています。

let uri = "<connection string>";
let mut client_options = ClientOptions::parse(uri).await?;
let compressors = vec![
Compressor::Snappy,
Compressor::Zstd { level: Some(1) },
Compressor::Zlib { level: None }
];
client_options.compressors = Some(compressors);
let client = Client::with_options(client_options)?;

このガイドの概念の詳細については、次のドキュメントを参照してください。

このガイドで言及されているメソッドや型の詳細については、以下のAPIドキュメントを参照してください。

戻る

接続オプション