Docs Menu
Docs Home
/ / /
Java Reactive Streams ドライバー
/ /

圧縮

項目一覧

  • ConnectionString を使用した圧縮の指定
  • MongoClientSettings を使用して圧縮を指定する
  • Dependencies

Java Reactive Streams ドライバーは、MongoDB サーバーとの間のメッセージの圧縮をサポートしています。 このドライバーは、MongoDB サーバーでサポートされている 3 つのアルゴリズムを実装します。

  • Snappy : バージョン を実行している MongoDB サーバーに接続するときに Snappy3 圧縮を使用できます。4 以降。

  • zlib:zlib MongoDB圧縮は、バージョン3 .6 以降を実行している サーバーに接続するときに使用できます。

  • Zstandard : Zstandard 圧縮は、バージョン を実行している MongoDB4 サーバーに接続するときに使用できます。2 以降。

ドライバーは、 helloコマンド応答でサーバーによって通知される機能に基づいて、どの圧縮アルゴリズムが使用されるかをネゴシエートします。

次のインポート ステートメントを含めます。

import com.mongodb.ConnectionString;
import com.mongodb.reactivestreams.client.MongoClients;
import com.mongodb.reactivestreams.client.MongoClient;

ConnectionString 内で圧縮を指定するには、 接続stringの一部としてコンプレッサーを指定します。

次のコードは Snappy 圧縮アルゴリズムを指定します。

ConnectionString connectionString =
new ConnectionString("mongodb://localhost/?compressors=snappy");
MongoClient mongoClient = MongoClients.create(connectionString);

次のコードはzlib圧縮アルゴリズムを指定します。

ConnectionString connectionString =
new ConnectionString("mongodb://localhost/?compressors=zlib");
MongoClient mongoClient = MongoClients.create(connectionString);

次のコードは、Zstandard 圧縮アルゴリズムを指定します。

ConnectionString connectionString =
new ConnectionString("mongodb://localhost/?compressors=zstd");
MongoClient mongoClient = MongoClients.create(connectionString);

次のコードでは、複数の圧縮アルゴリズムを指定します。

ConnectionString connectionString =
new ConnectionString("mongodb://localhost/?compressors=snappy,zlib,zstd");
MongoClient mongoClient = MongoClients.create(connectionString);

いずれの場合も、ドライバーは、サーバーがサポートしているリスト内の最初のコンプレッサーを使用します。

次のインポート ステートメントを含めます。

import com.mongodb.MongoClientSettings;
import com.mongodb.MongoCompressor;
import java.util.Arrays;

MongoClientSettingsインスタンス内で圧縮を指定するには、 compressorsプロパティをMongoCompressorインスタンスのリストに設定します。

次のコードは Snappy 圧縮アルゴリズムを指定します。

MongoClientSettings settings = MongoClientSettings.builder()
.compressorList(Arrays.asList(MongoCompressor.createSnappyCompressor()))
.build();
MongoClient client = MongoClients.create(settings);

次のコードはzlib圧縮アルゴリズムを指定します。

MongoClientSettings settings = MongoClientSettings.builder()
.compressorList(Arrays.asList(MongoCompressor.createZlibCompressor()))
.build();
MongoClient client = MongoClients.create(settings);

次のコードは、Zstandard 圧縮アルゴリズムを指定します。

MongoClientSettings settings = MongoClientSettings.builder()
.compressorList(Arrays.asList(MongoCompressor.createZstdCompressor()))
.build();
MongoClient client = MongoClients.create(settings);

次のコードでは、複数の圧縮アルゴリズムを指定します。

MongoClientSettings settings = MongoClientSettings.builder()
.compressorList(Arrays.asList(MongoCompressor.createSnappyCompressor(),
MongoCompressor.createZlibCompressor(),
MongoCompressor.createZstdCompressor()))
.build();
MongoClient client = MongoClients.create(settings);

URI を使用する構成と同様に、ドライバーは、サーバーがサポートしているリスト内の最初のコンプレッサーを使用します。

JDK には Snappy または Zstandard の組み込みサポートがないため、ドライバーは既存のオープンソースの Snappy および Zstandard 実装に依存します。 snappy-javaGithub リポジトリ を参照してください および zstd-javaGithub リポジトリ 詳細については、「 」を参照してください。

戻る

認証