개요
MongoDB 드라이버는 MongoDB Server에서 전송되고 수신되는 메시지를 압축할 수 있습니다. 이는 각 작업에 대한 데이터 전송량을 감소시킵니다. 압축은 제약된 네트워크에서 성능을 향상시키고 MongoDB Atlas 실행과 관련된 데이터 전송 비용을 낮출 수 있습니다.
압축은 유선 프로토콜 수준에서 작동하므로 애플리케이션이 수행하는 모든 작업에 적용됩니다. 둘 이상의 알고리즘을 지정하면 드라이버는 MongoDB Server도 지원하는 목록의 첫 번째 알고리즘을 사용합니다.
압축 알고리즘
MongoDB 드라이버는 다음 압축 알고리즘을 지원합니다.
네트워크 압축 이점
MongoDB Atlas는 클라우드 리전 간, 클라우드 공급자 간, 인프라스트럭처와 MongoDB Atlas 간에서 전송되는 데이터에 대해 요글을 부과합니다. 네트워크 압축은 애플리케이션이 전송하고 수신하는 데이터 양을 줄여줍니다. 이로 인해 이러한 데이터 전송 비용을 줄일 수 있습니다. 가격 책정에 대한 자세한 내용은 데이터 전송 비용을 참조하세요.
네트워크 압축은 생산성 측면에서도 이점이 있습니다. 압축된 메시지는 네트워크를 통해 전송되는 시간이 단축되므로 애플리케이션의 응답 시간을 개선할 수 있습니다. 또한 압축을 사용하면 MongoDB 트래픽이 사용하는 대역폭이 줄어들어 동일한 네트워크의 다른 애플리케이션에서 사용할 수 있는 대역폭이 늘어납니다.
압축 알고리즘을 선택할 때는 다음 지침을 고려하세요.
압축 효율성과 리소스 사용량의 균형을 맞추려면 Zstandard를 사용하세요. Zstandard는 대부분의 애플리케이션에 적합한 기본값입니다.
최소한 계산 오버헤드가 필요한 지연 시간에 민감한 애플리케이션에 Snappy를 사용하세요.
MongoDB 드라이버와 환경 전반에서 폭넓은 호환성을 위해 Zlib를 사용하세요.
팁
CPU 사용량 모니터
압축은 네트워크 대역폭을 CPU 사용량과 맞바꿉니다. 네트워크 압축을 활성화한 후 애플리케이션의 CPU 사용량을 모니터링하여 이 절충안이 워크로드에 도움이 되는지 확인하십시오. 이러한 절충안에 대해 자세히 알아보려면 MongoDB의 CPU 사용량 및 네트워크 압축 블로그 포스트를 참조하십시오.
버전 호환성
다음 표에는 각 압축 알고리즘에 대한 최소 지원 드라이버 및 MongoDB Server 버전이 나열되어 있습니다.
네트워크 압축 활성화
MongoDB 연결에 네트워크 압축을 사용하려면 필요한 종속성을 설치하고 사용할 압축 알고리즘을 지정하세요.
압축 알고리즘 종속성
다음 표에는 각 알고리즘과 필요한 경우 종속성을 제공합니다.
압축 알고리즘 | 종속성 |
|---|---|
스내피 | Snappy 라이브러리를 위한 Java JNI 래퍼 (wrapper)인 |
zlib | 없음. 드라이버는 zlib 압축을 기본적으로 지원합니다. |
Zstandard | Zstandard 라이브러리를 위한 Java JNI 래퍼 (wrapper)인 |
압축 알고리즘 지정
두 가지 방법 중 하나로 알고리즘을 지정하여 MongoDB 인스턴스 에 대한 연결에 압축을 활성화 할 수 있습니다. Connection String 또는 MongoClientSettings 탭 을 선택하여 해당 구문을 확인합니다.
연결 string의
compressors매개변수에서MongoClientSettings.builder()메서드에 연결된compressorList메서드에서
다음 예시 는 모든 압축 알고리즘을 지정하는 방법을 보여줍니다.
ConnectionString connectionString = new ConnectionString( "mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd");
MongoClient client = MongoClients.create(connectionString);MongoClientSettings settings = MongoClientSettings.builder() .compressorList(Arrays.asList(MongoCompressor.createSnappyCompressor(), MongoCompressor.createZlibCompressor(), MongoCompressor.createZstdCompressor())) .build();
MongoClient client = MongoClients.create(settings);API 문서
이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.