Docs Menu
Docs Home
/ / /
Java Sync Driver
/

ネットワーク圧縮

ドライバー オプションを有効にすると、メッセージを圧縮して、MongoDB とアプリケーション間でネットワーク経由で渡されるデータ量を減らすことができます。

ドライバーは次のアルゴリズムをサポートしています。

  1. Snappy : MongoDB 3.4 以降で利用可能。

  2. zlib : MongoDB 3.6 以降で利用可能

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

ドライバーは、これらのライブラリの次のバージョンに対してテストされています。

  • org.xerial.snappy:snappy-java:1.1.10.3

  • com.github.luben:zstd-jni:1.5.5-3

複数の圧縮アルゴリズムを指定した場合、ドライバーは接続先の MongoDB インスタンスでサポートされている最初の圧縮アルゴリズムをリストから選択します。

注意

アプリケーションで Snappy または Zstandard 圧縮が必要な場合は、それらのアルゴリズムに明示的な依存関係を追加する必要があります。

MongoDBインスタンスへの接続の圧縮を有効にするには、ConnectionString を使用して接続stringに パラメータを追加するか、MongoClientSettings.Builder クラスで メソッドを呼び出します。

ConnectionString を使用して圧縮を有効にするには、MongoClients.create() に渡される接続文字列にパラメーター compressors を追加します。1 つ以上の圧縮アルゴリズムを、カンマで区切って指定できます。

ConnectionString connectionString = new ConnectionString("mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd");
MongoClient mongoClient = MongoClients.create(connectionString);

次の文字列を使用して圧縮アルゴリズムを指定します。

MongoClientSettings を使用して圧縮を有効にするには、 compressorList() ビルダ メソッドに MongoCompressor インスタンスのリストを渡します。リストでは 1 つ以上の圧縮アルゴリズムを指定できます。

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

JDK は zlib 圧縮をネイティブでサポートしていますが、SnappyZstandard はオープンソースの実装に依存します。詳細については、 snappy-java zstd-java を参照してください。

戻る

Stable API