네트워크 압축
이 페이지의 내용
MongoDB 코틀린(Kotlin) 드라이버는 메시지를 압축하는 연결 옵션을 제공하며, 이를 통해 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.5-2
여러 압축 알고리즘을 지정하는 경우 드라이버는 드라이버가 연결된 MongoDB 인스턴스에서 지원하는 첫 번째 압축 알고리즘을 선택합니다.
참고
애플리케이션에 Snappy 또는 Zstandard 압축이 필요한 경우 해당 알고리즘에 대한 명시적 종속성 을 추가해야 합니다.
압축 알고리즘 지정
다음과 같은 방법으로 알고리즘을 지정하여 연결에서 압축을 활성화할 수 있습니다.
ConnectionString
인스턴스에compressors
매개 변수 추가MongoClientSettings
빌더에서compressorList()
메서드를 호출합니다.
ConnectionString 에서 연결에 대한 압축을 활성화 하려면 compressors
다음을 수행합니다. 인스턴스 인 경우 매개변수를 지정합니다. compressors
매개변수에 다음 값 중 하나 이상을 지정할 수 있습니다.
다음 예제에서는 Snappy, Zlib 및 Zstandard를 연결의 압축 알고리즘으로 지정하는 방법을 보여줍니다.
// Replace the placeholders with values from your MongoDB deployment's connection string val connectionString = ConnectionString("mongodb+srv://<user>:<password>@<cluster-url>/?compressors=snappy,zlib,zstd") // Create a new client with your settings val mongoClient = MongoClient.create(connectionString)
MongoClientSettings 내에서 다음을 사용하여 압축을 활성화 하려면 ,CompressorList() 를 호출합니다. 빌더 메서드를 생성하고 하나 이상의 MongoCompressor 를 전달합니다. 인스턴스를 매개 변수로 사용합니다.
MongoCompressor
에서 다음 메서드를 호출하여 압축 알고리즘을 지정할 수 있습니다.
createSnappyCompressor()
for Snappy 압축createZlibCompressor()
for zlib 압축createZstdCompressor()
Zstandard 의 경우 압축
다음 예제에서는 Snappy, Zlib 및 Zstandard를 연결의 압축 알고리즘으로 지정하는 방법을 보여줍니다.
// Replace the placeholder with your MongoDB deployment's connection string val uri = "<connection string>" val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .compressorList( listOf( MongoCompressor.createSnappyCompressor(), MongoCompressor.createZlibCompressor(), MongoCompressor.createZstdCompressor()) ) .build() // Create a new client with your settings val mongoClient = MongoClient.create(settings)
압축 알고리즘 종속성
JDK는 기본적으로 Zlib 압축을 지원하지만 Snappy와 Zstandard는 오픈 소스 구현에 의존합니다. snappy-java를 참조하세요. 및 zstd-java 자세한 내용은.