网络压缩
您可以通过启用驱动程序选项来压缩消息,这可以减少 MongoDB 和您的应用程序之间通过网络传输的数据量。
驱动程序支持以下算法
驱动程序测试以下库的以下版本
org.xerial.snappy:snappy-java:1.1.10.3
com.github.luben:zstd-jni:1.5.5-3
如果您指定了多个压缩算法,驱动程序将选择连接的MongoDB实例支持的列表中的第一个。
注意
需要使用Snappy或Zstandard压缩的应用程序必须为这些算法添加显式依赖项。
指定压缩算法
您可以通过以下两种方式之一启用与您的MongoDB实例的连接压缩:在连接字符串中使用ConnectionString
添加参数,或在MongoClientSettings.Builder
类中调用方法。
要使用ConnectionString启用压缩,请将参数compressors
添加到传递给MongoClients.create()
的连接字符串中。您可以指定一个或多个压缩算法,使用逗号分隔它们
ConnectionString connectionString = new ConnectionString("mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd"); MongoClient mongoClient = MongoClients.create(connectionString);
使用以下字符串指定压缩算法
要启用压缩,请使用MongoClientSettings,将compressorList()构建器方法传递一个MongoCompressor实例列表。您可以在列表中指定一个或多个压缩算法
MongoClientSettings settings = MongoClientSettings.builder() .compressorList(Arrays.asList(MongoCompressor.createSnappyCompressor(), MongoCompressor.createZlibCompressor(), MongoCompressor.createZstdCompressor())) .build(); MongoClient client = MongoClients.create(settings);
压缩算法依赖关系
The JDK supports Zlib compression natively, but Snappy and Zstandard depend on open source implementations. See snappy-java and zstd-java for details.