개요
이 가이드에서는 Rust 드라이버를 사용하여 MongoDB에 연결하기 위한 네트워크 압축 을 구성하는 방법을 배울 수 있습니다.
네트워크 압축은 애플리케이션과 MongoDB 간에 전송되는 메시지를 압축 및 압축 해제하여 네트워크를 통해 전달되는 총 데이터 양을 줄일 수 있는 기능입니다.
드라이버는 다음 압축기를 지원합니다:
참고
압축기 선택
연결에 사용할 압축기를 여러 개 지정하면 드라이버는 드라이버가 연결된 MongoDB 인스턴스에서 지원하는 첫 번째 압축기를 선택합니다.
이 가이드에는 다음 섹션이 포함되어 있습니다.
압축 기능 플래그 추가에서는 다양한 압축기에 대해 애플리케이션에 기능 플래그를 추가하는 방법을 설명합니다.
네트워크 압축 활성화 에서는
Client인스턴스 에서 네트워크 압축을 활성화 하는 방법을 설명합니다.추가 정보에서 이 가이드에 언급된 유형 및 메소드에 대한 리소스 및 API 문서 링크를 찾을 수 있습니다.
압축 기능 플래그 추가
압축기를 사용하려면 프로젝트의 Cargo.toml 파일에 있는 mongodb 종속성 기능 목록에 관련 기능 플래그를 추가하세요.
선호하는 압축기의 탭을 선택하여 mongodb 종속성에 필요한 기능 플래그를 추가하는 방법을 확인합니다.
[dependencies.mongodb] version = "3.8.0" features = ["snappy-compression"]
[dependencies.mongodb] version = "3.8.0" features = ["zlib-compression"]
[dependencies.mongodb] version = "3.8.0" features = ["zstd-compression"]
팁
여러 압축기를 지정하려면 각 압축기에 대한 기능 플래그를 mongodb 종속성에 추가해야 합니다.
네트워크 압축 활성화
다음과 같은 방법으로 압축기를 지정하여 Client 인스턴스에서 압축을 활성화할 수 있습니다.
연결 string 에
compressors매개변수를 추가합니다. 이러한 방식으로 압축을 활성화하는 예시 를 보려면 연결 string 섹션을 참조하세요.ClientOptions인스턴스의compressors필드를 설정합니다. 그런 다음Client을 인스턴스화할 때with_options()메서드에 옵션을 전달할 수 있습니다. 이러한 방식으로 압축을 활성화하는 예를 보려면 ClientOptions 섹션을 참조하세요.
연결 문자열
연결 문자열을 사용하여 압축을 사용하려면 compressors 매개 변수를 지정합니다. compressors 매개변수에 대해 다음 값 중 하나 이상을 지정할 수 있습니다.
"snappy"Snappy 압축의 경우"zlib"Zlib 압축용"zstd"Zstandard 압축의 경우
다음 예제에서는 Snappy, Zlib 및 Zstandard를 연결의 압축기로 지정하는 방법을 보여줍니다.
let uri = "mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd"; let client = Client::with_uri_str(uri).await?;
클라이언트 옵션 설정에 대한 자세한 학습은 연결 옵션 지정가이드를 참조하세요.
ClientOptions
ClientOptions 인스턴스 내에서 압축을 활성화하려면 compressors 필드를 설정한 다음 클라이언트를 생성할 때 옵션을 전달합니다.
compressors 필드는 Vec<Compressor> 유형의 값을 사용합니다. Compressor 유형에는 다음과 같은 값이 있을 수 있습니다.
Compressor::SnappyCompressor::Zstd { level: <integer> }Compressor::Zlib { level: <integer> }
level 필드가 있는 압축기의 경우 값을 None 로 설정하여 기본 수준을 나타냅니다. 다음 표에서는 Zlib 및 Zstandard의 기본 압축 수준과 허용되는 압축 수준을 설명합니다.
압축기 | 기본 수준 | 허용 수준 |
|---|---|---|
zlib |
|
|
Zstandard |
|
|
level 값이 높을수록 압축이 많아져 속도가 느려집니다.
다음 예제에서는 Snappy, Zlib 및 Zstandard를 연결의 압축기로 지정하는 방법을 보여줍니다.
let uri = "<connection string>"; let mut client_options = ClientOptions::parse(uri).await?; let compressors = vec![ Compressor::Snappy, Compressor::Zstd { level: Some(1) }, Compressor::Zlib { level: None } ]; client_options.compressors = Some(compressors); let client = Client::with_options(client_options)?;
추가 정보
이 가이드의 개념에 대한 자세한 내용은 다음 문서를 참조하세요.
MongoDB Server 매뉴얼의 연결 string 압축 옵션
API 문서
이 가이드에 언급된 메서드나 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.