压缩网络流量
Java Reactive Streams驾驶员提供了一个连接选项来压缩消息,从而减少了MongoDB和您的应用程序之间通过网络传递的数据量。
驱动程序支持以下算法:
驱动程序针对这些库的以下版本进行测试:
org.xerial.snappy:snappy-java:1.1.10.3
com.github.luben:zstd-jni:1.5.5-3
如果您指定多种压缩算法,驱动程序会选择 MongoDB 实例支持的列表中的第一个算法。
注意
需要 Snappy 或 ZStandard 压缩的应用程序必须为这些算法添加显式依赖项。
指定压缩算法
您可以通过以下两种方式之一指定算法,为MongoDB实例的连接启用压缩。 选择 Connection String或MongoClientSettings标签页,查看相应的语法:
在连接string的
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 文档: