개요
이 페이지에서는 스칼라 운전자 에서 사용할 수 있는 MongoDB 연결 및 인증 옵션과 MongoDB 연결에 이를 지정하는 방법을 설명합니다.
연결 URI에서 옵션 설정
연결 URI를 MongoClient() 생성자에 전달하는 경우 문자열에 연결 옵션을 <name>=<value> 쌍으로 포함할 수 있습니다. 다음 예시에서 연결 URI에는 값이 60000인 connectTimeoutMS 옵션과 값이 true인 tls 옵션이 포함되어 있습니다.
val uri = "mongodb://localhost:27017/?connectTimeoutMS=60000&tls=true" val mongoClient = MongoClient(uri)
MongoClientSettings에서 옵션 설정
MongoClientSettings.Builder 클래스의 메서드를 사용한 다음 설정 객체 MongoClient() 생성자에 전달하여 MongoClientSettings 인스턴스 에서 연결 옵션을 설정하다 수 있습니다.
이러한 방식으로 연결을 구성하면 런타임에 설정을 더 쉽게 변경할 수 있고 컴파일 타임에 오류를 포착하는 데 도움이 될 수 있습니다.
다음 예시 에서는 MongoClientSettings 인스턴스 를 생성할 때 연결 대상을 지정하고 기타 옵션을 설정하다 하는 방법을 보여 줍니다.
val settings = MongoClientSettings.builder() .applyToClusterSettings(builder => builder.hosts(List(new ServerAddress("localhost", 27017)).asJava)) .applyToSocketSettings(builder => builder.connectTimeout(60000, TimeUnit.MILLISECONDS)) .applyToSslSettings(builder => builder.enabled(true)) .build() val mongoClient = MongoClient(settings)
호스트 이름과 포트를 지정하는 대신 연결 string 을 제공하려는 경우 applyConnectionString() 메서드를 사용한 후 다음 코드에 표시된 대로 빌더 메서드를 사용하여 다른 옵션을 설정하다 수 있습니다.
val uri = "mongodb://localhost:27017/" val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .applyToSocketSettings(builder => builder.connectTimeout(60000, TimeUnit.MILLISECONDS)) .applyToSslSettings(builder => builder.enabled(true)) .build() val mongoClient = MongoClient(settings)
네트워크 압축
압축기
서버에 전송되거나 서버에서 수신되는 유선 프로토콜 메시지에 대한 선호 압축 유형(순서 대로). 선택 사항 빌드 시간 종속성으로 "snappy", "zlib", "zstd"를 활성화할 수 있습니다. 드라이버는 서버가 지원하는 이러한 압축 유형 중 첫 번째 것을 사용합니다.
데이터 유형: 쉼표로 구분된 string
기본값: null
예시:
val uri = "mongodb://localhost:27017/?compressors=snappy,zstd,zlib" val mongoClient = MongoClient(uri)
zlibCompressionLevel
zlib 에서 사용할 압축 수준입니다. 이 옵션은 -1에서 9 사이의 정수 값을 사용할 수 있습니다.
-1: (기본값). zlib 는 기본값 압축 수준(일반적으로
6)을 사용합니다.0: 압축하지 않습니다.
1: 속도가 가장 빠르지만 압축률은 가장 낮습니다.
9: 압축률은 가장 높지만 속도가 가장 느립니다.
데이터 유형: integer
기본값: -1
예시:
val uri = "mongodb://localhost:27017/?compressors=zlib&zlibCompressionLevel=3" val mongoClient = MongoClient(uri)
압축기
서버에 전송되거나 서버에서 수신되는 유선 프로토콜 메시지에 대한 선호 압축 유형(순서 대로). 선택 사항 빌드 시간 종속성으로 "snappy", "zlib", "zstd"를 활성화할 수 있습니다. 드라이버는 서버가 지원하는 이러한 압축 유형 중 첫 번째 것을 사용합니다.
데이터 유형: List[MongoCompressor]
기본값: 빈 목록
예시:
val settings = MongoClientSettings.builder() .compressorList(List( MongoCompressor.createSnappyCompressor(), MongoCompressor.createZstdCompressor(), MongoCompressor.createZlibCompressor() ).asJava) .build() val mongoClient = MongoClient(settings)
zlibCompressionLevel
zlib 에서 사용할 압축 수준입니다. 이 옵션은 -1에서 9 사이의 정수 값을 사용할 수 있습니다.
-1: (기본값). zlib 는 기본값 압축 수준(일반적으로
6)을 사용합니다.0: 압축하지 않습니다.
1: 속도가 가장 빠르지만 압축률은 가장 낮습니다.
9: 압축률은 가장 높지만 속도가 가장 느립니다.
데이터 유형: integer
기본값: -1
예시:
val settings = MongoClientSettings.builder() .compressorList(List( MongoCompressor.createZlibCompressor() .withProperty(MongoCompressor.LEVEL, 3) ).asJava) .build() val mongoClient = MongoClient(settings)
시간 초과
connectTimeoutMS
시간이 초과하기 전에 드라이버가 서버에 단일 TCP 소켓 연결을 설정하려고 시도하는 시간 길이.
데이터 유형: integer
기본값: 10000
예시:
val uri = "mongodb://localhost:27017/?connectTimeoutMS=10000" val mongoClient = MongoClient(uri)
socketTimeoutMS(사용 중단됨)
이 옵션은 더 이상 사용되지 않습니다. 대신 클라이언트 수준 시간 제한을 설정하여 이 시간 제한을 구성합니다.
운전자 시간이 초과되기 전에 소켓에서 전송 또는 수신을 시도하는 시간입니다. 기본값 은 운영 체제에서 설정하다 .
데이터 유형: integer
기본값: 시간 초과 없음
예시:
val uri = "mongodb://localhost:27017/?socketTimeoutMS=5000" val mongoClient = MongoClient(uri)
connectTimeoutMS
시간이 초과하기 전에 드라이버가 서버에 단일 TCP 소켓 연결을 설정하려고 시도하는 시간 길이.
데이터 유형: integer
기본값: 10000
예시:
val settings = MongoClientSettings.builder() .applyToSocketSettings(builder => builder.connectTimeout(10, TimeUnit.SECONDS)) .build() val mongoClient = MongoClient(settings)
socketTimeoutMS(사용 중단됨)
이 옵션은 더 이상 사용되지 않습니다. 대신 클라이언트 수준 시간 제한을 설정하여 이 시간 제한을 구성합니다.
운전자 시간이 초과되기 전에 소켓에서 전송 또는 수신을 시도하는 시간입니다. 기본값 은 운영 체제에서 설정하다 .
데이터 유형: integer
기본값: 시간 초과 없음
예시:
val settings = MongoClientSettings.builder() .applyToSocketSettings(builder => builder.readTimeout(5, TimeUnit.SECONDS)) .build() val mongoClient = MongoClient(settings)
서버 선택
인증
팁
인증 옵션에 대해 자세히 학습하려면 인증 메커니즘 섹션을 참조하세요.
authMechanism
드라이버가 MongoDB Server에 대해 인증하는 메커니즘입니다. 인증 메커니즘을 지정하지 않으면 드라이버는 서버 버전에 따라 SCRAM-SHA-1 또는 SCRAM-SHA-256를 사용합니다.
데이터 유형: string
기본값: "SCRAM-SHA-256" MongoDB v4.0 이상에 연결할 때
예시:
val uri = "mongodb://<username>:<password>@localhost:27017/?authMechanism=SCRAM-SHA-256" val mongoClient = MongoClient(uri)
authMechanismProperties
인증 메커니즘 과 관련된 옵션입니다. 모든 인증 메커니즘에 필요한 것은 아닙니다.
데이터 유형: string
예시:
val uri = "mongodb://localhost:27017/?authMechanismProperties=AWS_SESSION_TOKEN:12435" val mongoClient = MongoClient(uri)
authSource
인증할 데이터베이스입니다.
데이터 유형: string
기본값: "admin"
예시:
val uri = "mongodb://<username>:<password>@localhost:27017/?authSource=admin" val mongoClient = MongoClient(uri)
사용자 이름
인증 위한 사용자 이름 . 이 옵션이 연결 URI에 포함된 경우에는 백분율로 인코딩해야 합니다.
데이터 유형: string
예시:
val uri = "mongodb://myUser:<password>@localhost:27017/" val mongoClient = MongoClient(uri)
비밀번호
인증 위한 비밀번호입니다. 이 옵션이 연결 URI에 포함된 경우에는 백분율로 인코딩해야 합니다.
데이터 유형: string
예시:
val uri = "mongodb://<username>:myPassword@localhost:27017/" val mongoClient = MongoClient(uri)
authMechanism
드라이버가 MongoDB Server에 대해 인증하는 메커니즘입니다. 인증 메커니즘을 지정하지 않으면 드라이버는 서버 버전에 따라 SCRAM-SHA-1 또는 SCRAM-SHA-256를 사용합니다.
데이터 유형: string
기본값: "SCRAM-SHA-256" MongoDB v4.0 이상에 연결할 때
예시:
val settings = MongoClientSettings.builder() .credential(MongoCredential.createScramSha256Credential( "<username>", "<authSource>", "<password>".toCharArray)) .build() val mongoClient = MongoClient(settings)
참고
에서 사용자 이름, 비밀번호, 인증 소스 및 메커니즘별 속성을 구성하려면 적절한 MongoClientSettings MongoCredential 팩토리 메서드를 사용합니다. 자세한 학습 은 인증 메커니즘 가이드 참조하세요.
읽기 및 쓰기 작업
복제본 세트
연결할 복제본 세트의 이름입니다.
데이터 유형: string
예시:
val uri = "mongodb://localhost:27017/?replicaSet=myRS" val mongoClient = MongoClient(uri)
directConnection
모든 작업을 호스트에 강제로 디스패치할지 여부를 지정합니다. 이 옵션을 지정하면 드라이버는 SRV 연결 형식을 허용하지 않습니다. 대신 표준 연결 URI 형식을 사용해야 합니다. SRV 연결 및 표준 연결 형식에 대해 자세히 학습하려면 MongoDB Server 매뉴얼의 연결 문자열 가이드를 참조하세요.
호스팅하다 이름을 두 개 이상 지정하는 경우 이 속성 false(으)로 설정하다 해야 합니다.
데이터 유형: boolean
기본값: false
예시:
val uri = "mongodb://localhost:27017/?directConnection=true" val mongoClient = MongoClient(uri)
읽기 설정
클라이언트의 기본 읽기 설정 (read preference)입니다. 자세한 내용은 MongoDB Server 수동의 읽기 설정 (read preference)을 참조하세요.
데이터 유형: string
기본값: primary
예시:
val uri = "mongodb://localhost:27017/?readPreference=primary" val mongoClient = MongoClient(uri)
readConcern
클라이언트의 읽기 고려 (read concern). 자세한 내용은 MongoDB Server 매뉴얼의 읽기 고려를 참조하세요.
데이터 유형: string
예시:
val uri = "mongodb://localhost:27017/?readConcern=majority" val mongoClient = MongoClient(uri)
쓰기 고려
클라이언트의 쓰기 고려 (write concern). 자세한 내용은 MongoDB Server 매뉴얼의 쓰기 고려를 참조하세요.
데이터 유형: string
예시:
val uri = "mongodb://localhost:27017/?writeConcern=majority" val mongoClient = MongoClient(uri)
localThresholdMS
서버 자격에 대한 지연 시간 창 . 서버의 왕복 시간이 가장 빠른 서버의 왕복 시간에 이 값을 더한 것보다 오래 걸리는 경우 해당 서버 선택할 수 없습니다.
데이터 유형: integer
기본값: 15
예시:
val uri = "mongodb://localhost:27017/?localThresholdMS=35" val mongoClient = MongoClient(uri)
복제본 세트
연결할 복제본 세트의 이름입니다.
데이터 유형: string
예시:
val settings = MongoClientSettings.builder() .applyToClusterSettings(builder => builder.requiredReplicaSetName("myRS")) .build() val mongoClient = MongoClient(settings)
directConnection
모든 작업을 호스트에 강제로 디스패치할지 여부를 지정합니다. 이 옵션을 지정하면 드라이버는 SRV 연결 형식을 허용하지 않습니다. 대신 표준 연결 URI 형식을 사용해야 합니다. SRV 연결 및 표준 연결 형식에 대해 자세히 학습하려면 MongoDB Server 매뉴얼의 연결 문자열 가이드를 참조하세요.
호스팅하다 이름을 두 개 이상 지정하는 경우 이 속성 false(으)로 설정하다 해야 합니다.
데이터 유형: boolean
기본값: false
예시:
val settings = MongoClientSettings.builder() .applyToClusterSettings(builder => builder.mode(ClusterConnectionMode.SINGLE)) .build() val mongoClient = MongoClient(settings)
읽기 설정
클라이언트의 기본 읽기 설정 (read preference)입니다. 자세한 내용은 MongoDB Server 수동의 읽기 설정 (read preference)을 참조하세요.
데이터 유형: string
기본값: primary
예시:
val settings = MongoClientSettings.builder() .readPreference(ReadPreference.primary()) .build() val mongoClient = MongoClient(settings)
readConcern
클라이언트의 읽기 고려 (read concern). 자세한 내용은 MongoDB Server 매뉴얼의 읽기 고려를 참조하세요.
데이터 유형: string
예시:
val settings = MongoClientSettings.builder() .readConcern(ReadConcern.MAJORITY) .build() val mongoClient = MongoClient(settings)
쓰기 고려
클라이언트의 쓰기 고려 (write concern). 자세한 내용은 MongoDB Server 매뉴얼의 쓰기 고려를 참조하세요.
데이터 유형: string
예시:
val settings = MongoClientSettings.builder() .writeConcern(WriteConcern.MAJORITY) .build() val mongoClient = MongoClient(settings)
localThresholdMS
서버 자격에 대한 지연 시간 창 . 서버의 왕복 시간이 가장 빠른 서버의 왕복 시간에 이 값을 더한 것보다 오래 걸리는 경우 해당 서버 선택할 수 없습니다.
데이터 유형: integer
기본값: 15
예시:
val settings = MongoClientSettings.builder() .applyToClusterSettings(builder => builder.localThreshold(35, TimeUnit.MILLISECONDS)) .build() val mongoClient = MongoClient(settings)
추가 정보
연결 옵션의 전체 목록을 보려면 MongoDB Server 매뉴얼의 연결 문자열 옵션을 참조하세요.
API 문서
이 가이드 에 언급된 클래스 및 메서드에 학습 보려면 다음 API 설명서를 참조하세요.