연결 옵션 지정
개요
이 섹션에서는 코틀린 동기 (Kotlin Sync) 운전자 에서 사용할 수 있는 MongoDB 연결 및 인증 옵션에 대해 설명합니다. 연결 URI 또는 MongoClientSettings
인스턴스 내에서 옵션을 설정하여 연결을 구성할 수 있습니다.
연결 URI에서 옵션 설정
연결 URI를 MongoClient.create()
메서드에 전달하는 경우 string 에 연결 옵션을 <name>=<value>
쌍으로 포함할 수 있습니다. 다음 예시 에서 연결 URI에는 값이 60000
인 connectTimeoutMS
옵션과 값이 true
인 tls
옵션이 포함되어 있습니다.
val uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true" val mongoClient = MongoClient.create(uri)
MongoClientSettings에서 옵션 설정
MongoClientSettings.Builder
클래스의 메서드를 사용한 다음 설정 객체 를 MongoClient.create()
메서드에 전달하여 MongoClientSettings
인스턴스 에서 연결 옵션을 설정하다 수 있습니다.
이러한 방식으로 연결을 구성하면 런타임에 설정을 더 쉽게 변경할 수 있고 컴파일 타임에 오류를 포착하는 데 도움이 될 수 있습니다.
다음 예시 에서는 MongoClientSettings
인스턴스 를 생성할 때 연결 대상을 지정하고 기타 옵션을 설정하다 하는 방법을 보여 줍니다.
val settings = MongoClientSettings.builder() .applyToClusterSettings { builder -> builder.hosts(listOf(ServerAddress("localhost", 27017))) } .applyToSocketSettings { builder -> builder.connectTimeout(60000, TimeUnit.MILLISECONDS) } .applyToSslSettings { builder -> builder.enabled(true) } .build() val mongoClient = MongoClient.create(settings)
호스트 이름과 포트를 지정하는 대신 연결 string 을 제공하려는 경우 applyConnectionString()
메서드를 사용한 후 다음 코드에 표시된 대로 빌더 메서드를 사용하여 다른 옵션을 설정하다 수 있습니다.
val uri = "<connection string>" val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .applyToSocketSettings { builder -> builder.connectTimeout(60000, TimeUnit.MILLISECONDS) } .applyToSslSettings { builder -> builder.enabled(true) } .build() val mongoClient = MongoClient.create(settings)
연결 옵션
다음 섹션에서는 코틀린 동기 (Kotlin Sync) 운전자 에서 사용할 수 있는 연결 옵션에 대해 설명합니다. 각 옵션은 연결 URI에서 사용할 수 있는 옵션-값 쌍과 MongoClientSettings
인스턴스 내에서 이를 설정하다 하는 운전자 메서드(사용 가능한 경우)를 보여줍니다.
네트워크 압축
연결 옵션 | 설명 |
---|---|
압축기 | The preferred compression types, in order, for wire-protocol messages sent to
or received from the server. The driver uses the first of these compression types
that the server supports. Data Type: comma-delimited string MongoClientSettings: compressorList(listOf(<MongoCompressor>)) Connection URI: compressors=snappy,zstd,zlib |
zlibCompressionLevel | The compression level for zlib to use. This option accepts
an integer value between -1 and 9 , corresponding to the
following settings:- -1: (Default). zlib uses its default compression level (usually 6 ).- 0: No compression. - 1: Fastest speed but lowest compression. - 9: Best compression but slowest speed. Data Type: integer Default: -1 MongoClientSettings: compressorList(listOf(zlib.withProperty(MongoCompressor.LEVEL, 3))) Connection URI: zlibCompressionLevel=3 |
시간 초과
연결 옵션 | 설명 | |||
---|---|---|---|---|
connectTimeoutMS | The time in milliseconds to attempt a connection before timing out. Data Type: integer Default: 10000 MongoClientSettings:
Connection URI: timeoutMs=10000 | |||
socketTimeoutMS | The time in milliseconds to attempt a send or receive on a
connection before the attempt times out. Data Type: integer Default: no timeout MongoClientSettings:
Connection URI: socketTimeoutMS=5000 |
서버 선택
연결 옵션 | 설명 | |||
---|---|---|---|---|
serverSelectionTimeoutMS | The maximum amount of time, in milliseconds, the driver waits
for server selection to succeed before throwing an
exception. Data Type: integer Default: 30000 MongoClientSettings:
Connection URI: serverSelectionTimeoutMS=30000 |
인증
연결 옵션 | 설명 | |||
---|---|---|---|---|
authMechanism | The mechanism that the Kotlin Sync driver uses to authenticate
the application. Data Type: string Default: "SCRAM-SHA-256" when connecting to MongoDB
v4.0 or laterMongoClientSettings:
Connection URI: authMechanism=SCRAM-SHA-256 | |||
authMechanismProperties | Options specific to the authentication mechanism. This option
isn't needed for all authentication mechanisms. Data Type: string Connection URI: authMechanismProperties=AWS_SESSION_TOKEN:12435 | |||
authSource | The database to authenticate against. Data Type: string Default: "admin" Connection URI: authSource=admin | |||
사용자 이름 | The username for authentication. When this option is included in a connection
URI, you must percent-encode it. Data Type: string Connection URI: username=my+user | |||
비밀번호 | The password for authentication. When this option is included in a connection
URI, you must percent-encode it. Data Type: string Connection URI: password=strong+password |
읽기 및 쓰기 작업
다양한 유형의 MongoDB deployment에 연결하는 방법에 학습 보려면 연결 대상 선택 가이드 를 참조하세요.
연결 옵션 | 설명 | |||
---|---|---|---|---|
복제본 세트 | Specifies the name of the replica set to connect to. Data Type: string Connection URI: replicaSet=myRS | |||
directConnection | Whether to connect only to the primary member of the replica set. Data Type: boolean Default: false MongoClientSettings:
Connection URI: directConnection=true | |||
읽기 설정 | Specifies the client's read preference. For more information,
see Read Preference in the
Server manual. Data Type: string Default: primary MongoClientSettings: readPreference(ReadPreference.primary()) Connection URI: readPreference=primary | |||
readConcern | Specifies the client's read concern. For more information, see
Read Concern in the Server
manual. Data Type: string MongoClientSettings: readConcern(ReadConcern.MAJORITY) Connection URI: readConcern=majority | |||
쓰기 고려 | Specifies the client's write concern. For more information, see
Write Concern in the
Server manual. Data Type: string MongoClientSettings: writeConcern(WriteConcern.MAJORITY) Connection URI: writeConcern=majority | |||
localThresholdMS | The latency window for a replica-set member's eligibility. If a member's
round trip ping takes longer than the fastest server's round-trip ping
time plus this value, the server isn't eligible for selection. Data Type: integer Default: 15 MongoClientSettings:
Connection URI: localThresholdMS=35 |
추가 정보
연결 옵션의 전체 목록을 보려면 서버 매뉴얼의 연결 문자열 을 참조하세요.
API 문서
이 가이드 에 언급된 클래스 및 메서드에 학습 보려면 다음 API 설명서를 참조하세요.