네트워크 압축
개요
이 가이드에서는 Rust 드라이버를 사용하여 MongoDB에 연결하기 위한 네트워크 압축 을 구성하는 방법을 배울 수 있습니다.
네트워크 압축은 애플리케이션과 MongoDB 간에 전송되는 메시지를 압축 및 압축 해제하여 네트워크를 통해 전달되는 총 데이터 양을 줄일 수 있는 기능입니다.
드라이버는 다음 압축기를 지원합니다:
Snappy: MongoDB 3 4 에서 사용 가능합니다. 이상
zlib: . 이상에서 사용 MongoDB 3 가능합니다.6
Zstandard: MongoDB 4 에서 사용 가능합니다.2 이상
참고
압축기 선택
연결에 사용할 압축기를 여러 개 지정하면 드라이버는 드라이버가 연결된 MongoDB 인스턴스에서 지원하는 첫 번째 압축기를 선택합니다.
이 가이드에는 다음 섹션이 포함되어 있습니다.
압축 기능 플래그 추가에서는 다양한 압축기에 대해 애플리케이션에 기능 플래그를 추가하는 방법을 설명합니다.
네트워크 압축 활성화 에서는
Client
인스턴스에서 네트워크 압축을 활성화하는 방법을 설명합니다.추가 정보에서 이 가이드에 언급된 유형 및 메소드에 대한 리소스 및 API 문서 링크를 찾을 수 있습니다.
압축 기능 플래그 추가
압축기를 사용하려면 프로젝트의 Cargo.toml
파일에 있는 mongodb
종속성 기능 목록에 관련 기능 플래그를 추가하세요.
선호하는 압축기의 탭을 선택하여 mongodb
종속성에 필요한 기능 플래그를 추가하는 방법을 확인합니다.
[dependencies.mongodb] version = "3.1.0" features = ["snappy-compression"]
[dependencies.mongodb] version = "3.1.0" features = ["zlib-compression"]
[dependencies.mongodb] version = "3.1.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::Snappy
Compressor::Zstd { level: <integer> }
Compressor::Zlib { level: <integer> }
level
필드가 있는 압축기의 경우 값을 None
로 설정하여 기본 수준을 나타냅니다. 다음 표에서는 Zlib 및 Zstandard의 기본 압축 수준과 허용되는 압축 수준을 설명합니다.
압축기 | 기본 수준 | 허용 수준 |
---|---|---|
zlib | 6 | 0 ~ 9 또는 None 사이의 정수 |
Zstandard | 3 | 1 ~ 22 또는 None 사이의 정수 |
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 설명서를 참조하세요.