压缩网络流量
Java 反应式流驱动程序提供了一个连接选项来压缩消息,从而减少了 MongoDB 和您的应用程序之间通过网络传输的数据量。
驱动程序支持以下算法
驱动程序对以下版本的库进行了测试:
org.xerial.snappy:snappy-java:1.1.10.3
com.github.luben:zstd-jni:1.5.5-3
如果您指定了多个压缩算法,驱动程序将选择您MongoDB实例支持的列表中的第一个。
注意
需要 Snappy 或 Zstandard 压缩的应用程序必须添加对那些算法的显式依赖项。
指定压缩算法
您可以通过指定算法以两种方式之一启用与MongoDB实例的连接压缩。选择连接字符串或MongoClientSettings标签以查看相应的语法
在连接字符串的
compressors
参数中在连接到
MongoClientSettings.builder()
方法的compressorList
方法链中
以下示例显示了如何指定所有压缩算法
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 文档