ネットワーク トラフィックを圧縮
Java Reactive Streams ドライバーには、メッセージを圧縮する接続オプションが用意されているため、 MongoDBとアプリケーション間でネットワーク経由で渡されるデータ量を減らします。
ドライバーは次のアルゴリズムをサポートしています。
ドライバーは、これらのライブラリの次のバージョンに対してテストされています。
org.xerial.snappy:snappy-java:1.1.10.3
com.github.luben:zstd-jni:1.5.5-3
複数の圧縮アルゴリズムを指定した場合、ドライバーは MongoDB インスタンスでサポートされているリスト内の最初の 1 つを選択します。
注意
アプリケーションで Snappy または Zstandard 圧縮が必要な場合は、それらのアルゴリズムに明示的な依存関係を追加する必要があります。
圧縮アルゴリズムを指定する
MongoDBインスタンスへの接続の圧縮を有効にするには、2 つの方法のいずれかの方法でアルゴリズムを指定します。 対応する構文を確認するには、 タブまたは タブを選択します。Connection StringMongoClientSettings
接続stringの
compressors
パラメータ内compressorList
メソッドに連結されたMongoClientSettings.builder()
メソッド内
次の例は、すべての圧縮アルゴリズムを指定する方法を示しています。
ConnectionString connectionString = new ConnectionString( "mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd"); MongoClient client = MongoClients.create(connectionString);
MongoClientSettings settings = MongoClientSettings.builder() .compressorList(Arrays.asList(MongoCompressor.createSnappyCompressor(), MongoCompressor.createZlibCompressor(), MongoCompressor.createZstdCompressor())) .build(); MongoClient client = MongoClients.create(settings);
圧縮アルゴリズムの依存関係
JDK は をネイティブでサポートしていますzlib 圧縮。ただし、Snappy と Zstandard はオープンソースJava実装に依存します。 これらの実装の詳細については、次のGithubページを参照してください。
API ドキュメント
このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。