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()
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 を参照してください。