압축
Java Reactive Streams 운전자 는 MongoDB 서버와의 메시지 압축을 지원합니다. 운전자 는 MongoDB 서버에서 지원하는 세 가지 알고리즘을 구현합니다.
Snappy: Snappy MongoDB 3버전4 . 이상을 실행하는 서버에 연결할 때 압축을 사용할 수 있습니다.
zlib: zlib MongoDB 3버전6 . 이상을 실행하는 서버에 연결할 때 압축을 사용할 수 있습니다.
Zstandard: 버전 실행 하는 MongoDB 서버에 연결할 때 Zstandard 압축을 사용할 수 4 2 있습니다. 이상.
운전자 는 서버 가 hello
명령 응답에서 알리는 기능을 기반으로 어떤 압축 알고리즘 이 사용되는지 협상합니다.
ConnectionString을 사용하여 압축 지정
다음 가져오기 문을 포함합니다.
import com.mongodb.ConnectionString; import com.mongodb.reactivestreams.client.MongoClients; import com.mongodb.reactivestreams.client.MongoClient;
ConnectionString
내에 압축을 지정하려면 연결 string 의 일부로 압축기를 지정합니다.
다음 코드는 스 Snappy 압축 알고리즘을 지정합니다.
ConnectionString connectionString = new ConnectionString("mongodb://localhost/?compressors=snappy"); MongoClient mongoClient = MongoClients.create(connectionString);
다음 코드는 zlib 압축 알고리즘 지정합니다.
ConnectionString connectionString = new ConnectionString("mongodb://localhost/?compressors=zlib"); MongoClient mongoClient = MongoClients.create(connectionString);
다음 코드는 Zstandard 압축 알고리즘 지정합니다.
ConnectionString connectionString = new ConnectionString("mongodb://localhost/?compressors=zstd"); MongoClient mongoClient = MongoClients.create(connectionString);
다음 코드는 여러 압축 알고리즘을 지정합니다.
ConnectionString connectionString = new ConnectionString("mongodb://localhost/?compressors=snappy,zlib,zstd"); MongoClient mongoClient = MongoClients.create(connectionString);
모든 경우에 운전자 는 서버 가 지원 하는 목록의 첫 번째 압축기를 사용합니다.
MongoClientSettings를 사용하여 압축 지정
다음 가져오기 문을 포함합니다.
import com.mongodb.MongoClientSettings; import com.mongodb.MongoCompressor; import java.util.Arrays;
MongoClientSettings
인스턴스 내에서 압축을 설정하다 하려면 compressors
속성 을 MongoCompressor
인스턴스 목록으로 설정합니다.
다음 코드는 스 Snappy 압축 알고리즘을 지정합니다.
MongoClientSettings settings = MongoClientSettings.builder() .compressorList(Arrays.asList(MongoCompressor.createSnappyCompressor())) .build(); MongoClient client = MongoClients.create(settings);
다음 코드는 zlib 압축 알고리즘 지정합니다.
MongoClientSettings settings = MongoClientSettings.builder() .compressorList(Arrays.asList(MongoCompressor.createZlibCompressor())) .build(); MongoClient client = MongoClients.create(settings);
다음 코드는 Zstandard 압축 알고리즘 지정합니다.
MongoClientSettings settings = MongoClientSettings.builder() .compressorList(Arrays.asList(MongoCompressor.createZstdCompressor())) .build(); MongoClient client = MongoClients.create(settings);
다음 코드는 여러 압축 알고리즘을 지정합니다.
MongoClientSettings settings = MongoClientSettings.builder() .compressorList(Arrays.asList(MongoCompressor.createSnappyCompressor(), MongoCompressor.createZlibCompressor(), MongoCompressor.createZstdCompressor())) .build(); MongoClient client = MongoClients.create(settings);
URI를 사용하는 구성과 마찬가지로 운전자 는 서버 가 지원 하는 목록의 첫 번째 압축기를 사용합니다.
Dependencies
JDK에는 Snappy 또는 Zstandard에 대한 지원 이 내장 되어 있지 않으므로 운전자 는 기존 오픈 소스 Snappy 및 Zstandard 구현에 종속됩니다. snappy-java Github 리포지토리 보기 및 zstd-java Github 리포지토리 를 참조하세요.