문서 메뉴
문서 홈
/ / /
Rust 드라이버
/ /

네트워크 압축

이 페이지의 내용

  • 개요
  • 압축 기능 플래그 추가
  • 네트워크 압축 활성화
  • 연결 문자열
  • ClientOptions
  • 추가 정보
  • API 문서

이 가이드에서는 Rust 드라이버를 사용하여 MongoDB에 연결하기 위한 네트워크 압축 을 구성하는 방법을 배울 수 있습니다.

네트워크 압축은 애플리케이션과 MongoDB 간에 전송되는 메시지를 압축 및 압축 해제하여 네트워크를 통해 전달되는 총 데이터 양을 줄일 수 있는 기능입니다.

드라이버는 다음 압축기를 지원합니다:

  1. Snappy: . 이상에서 사용 MongoDB 3 가능합니다.4

  2. zlib: . 이상에서 사용 MongoDB 3 가능합니다.6

  3. 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 인스턴스에서 압축을 활성화할 수 있습니다.

  • 연결 문자열에 compressors 매개 변수를 추가합니다. 이러한 방식으로 압축을 활성화하는 예를 보려면 연결 문자열 섹션을 참조하세요.

  • 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 인스턴스 내에서 압축을 활성화하려면 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_async(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)?;

이 가이드의 개념에 대한 자세한 내용은 다음 문서를 참조하세요.

이 가이드에 언급된 메서드나 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.

돌아가기

연결 옵션