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