ネットワーク圧縮
MongoDB Kotlin ドライバーには メッセージを圧縮するための接続オプションが用意されているため、MongoDB とアプリケーション間でネットワークを介して渡されるデータ量が減ります。
ドライバーは次のアルゴリズムをサポートしています。
ドライバーは、これらのライブラリの次のバージョンに対してテストされています。
org.xerial.snappy:snappy-java:1.1.8.4
com.github.luben:zstd-jni:1.5.5-2
複数の圧縮アルゴリズムを指定した場合、ドライバーは、ドライバーが接続されている MongoDB インスタンスでサポートされている最初のアルゴリズムを選択します。
注意
アプリケーションで Snappy または Zstandard 圧縮が必要な場合は、それらのアルゴリズムの明示的な依存関係を追加する必要があります。
圧縮アルゴリズムを指定する
次の方法でアルゴリズムを指定することで、接続の圧縮を有効にできます。
ConnectionString
インスタンスへのcompressors
パラメータの追加MongoClientSettings
ビルダからcompressorList()
メソッドを呼び出す
ConnectionString で接続の圧縮を有効にするには インスタンスに接続する場合は、compressors
パラメータを指定します。compressors
パラメーターには、次の値を 1 つ以上指定できます。
次の例は、接続の圧縮アルゴリズムとしてSnappy 、 zlib 、および Zstandard を指定する方法を示しています。
// Replace the placeholders with values from your MongoDB deployment's connection string val connectionString = ConnectionString("mongodb+srv://<user>:<password>@<cluster-url>/?compressors=snappy,zlib,zstd") // Create a new client with your settings val mongoClient = MongoClient.create(connectionString)
MongoClientSettings 内で を使用して圧縮を有効にするには は、 compressorList() を呼び出します ビルダ メソッドと 1 つ以上の MongoCompressor を渡します インスタンスをパラメータとして指定します。
圧縮アルゴリズムを指定するには、 MongoCompressor
から次のメソッドを呼び出します。
createSnappyCompressor()
Snappy 用 圧縮createZlibCompressor()
用zlib 圧縮createZstdCompressor()
for Zstandard 圧縮
次の例は、接続の圧縮アルゴリズムとしてSnappy 、 zlib 、および Zstandard を指定する方法を示しています。
// Replace the placeholder with your MongoDB deployment's connection string val uri = "<connection string>" val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .compressorList( listOf( MongoCompressor.createSnappyCompressor(), MongoCompressor.createZlibCompressor(), MongoCompressor.createZstdCompressor()) ) .build() // Create a new client with your settings val mongoClient = MongoClient.create(settings)
圧縮アルゴリズムの依存関係
JDK はzlibネイティブで圧縮されていますが、 SnappyおよびZstandardは、オープンソースの実装に依存します。 詳しくは 、 snappy-java および zstd-java 詳細については、「 」を参照してください。