ネットワーク圧縮
ドライバー オプションを有効にすると、メッセージを圧縮して、MongoDB とアプリケーション間でネットワーク経由で渡されるデータ量を減らすことができます。
ドライバーは次のアルゴリズムをサポートしています。
ドライバーは、これらのライブラリの次のバージョンに対してテストされています。
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 を使用して圧縮を有効にするには、 で、 に渡される接続 にパラメータcompressors
stringを追加します。MongoClients.create()
1 つ以上の圧縮アルゴリズムを、カンマで区切って指定できます。
ConnectionString connectionString = new ConnectionString("mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd"); MongoClient mongoClient = MongoClients.create(connectionString);
次の文字列を使用して圧縮アルゴリズムを指定します。
Snappy の「 Snappy 」 圧縮
Zlib の「zlib」 圧縮
Zstandard の " zstd " 圧縮
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ネイティブで圧縮されていますが、 SnappyおよびZstandardは、オープンソースの実装に依存します。 詳しくは 、 snappy-java および zstd-java 詳細については、「 」を参照してください。