네트워크 압축
메시지를 압축하는 드라이버 옵션을 활성화하여 MongoDB와 애플리케이션 간에 네트워크를 통해 전달되는 데이터의 양을 줄일 수 있습니다.
드라이버는 다음 알고리즘을 지원합니다:
Snappy: MongoDB 3.4 이상에서 사용할 수 있습니다.
Zlib: MongoDB 3.6 이상에서 사용할 수 있습니다.
Zstandard: MongoDB 4.2 이상에서 사용할 수 있습니다.
드라이버는 이러한 라이브러리의 다음 버전에 대해 테스트합니다:
org.xerial.snappy:snappy-java:1.1.8.4
com.github.luben:zstd-jni:1.5.2-3
여러 압축 알고리즘을 지정하는 경우 드라이버는 연결된 MongoDB 인스턴스에서 지원하는 목록에서 첫 번째 압축 알고리즘을 선택합니다.
참고
Snappy 또는 Zstandard 압축이 필요한 애플리케이션은 해당 알고리즘에 대한 명시적인 종속성을 추가 해야 합니다.
압축 알고리즘 지정
ConnectionString
을 사용하여 연결 문자열에 매개변수를 추가하거나 MongoClientSettings.Builder
클래스에서 메서드를 호출하는 두 가지 방법 중 하나로 알고리즘을 지정하여 MongoDB 인스턴스 연결에 대한 압축을 활성화할 수 있습니다.
ConnectionString 을 사용하여 압축을 활성화 compressors
string 하려면 에 전달된 연결 에 매개 변수 를 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);
압축 알고리즘 종속성
JDK는 기본적으로 Zlib 압축을 지원하지만 Snappy와 Zstandard는 오픈 소스 구현에 의존합니다. snappy-java를 참조하세요. 및 zstd-java 자세한 내용은.