개요
이 가이드 에서는 Java 운전자 클러스터를 관리하는 방법에 대해 학습 수 있습니다.
연결 문자열 사용하거나 MongoClientSettings 객체를 MongoClient 생성자에 전달하여 클러스터에 대한 설정을 지정할 수 있습니다. Connection
String 또는 MongoClientSettings 탭 선택하여 사용 가능한 옵션을 확인합니다.
연결 문자열 에 다음 매개변수를 포함하여 MongoDB cluster 와 상호 작용할 때 드라이버의 동작을 수정합니다.
옵션 이름 | 유형 | 설명 |
|---|---|---|
| integer | 운전자 예외를 발생시키기 전에 서버 선택이 성공할 때까지 기다리는 최대 시간(밀리초)을 지정합니다. 기본값: |
| integer | 복제본 세트 에서 MongoDB 의 여러 인스턴스와 통신할 때 운전자 응답 시간이 가장 빠른 서버 에 로컬 임계값(밀리초)을 더한 값보다 작거나 같은 서버 에만 요청을 보냅니다. 기본값: |
| 문자열 | 제공된 연결 문자열에 여러 호스트가 포함되도록 지정합니다. 이 값이 지정되면 드라이버는 해당 세트의 모든 구성원을 찾으려고 시도합니다. 기본값: |
| 부울 | 운전자 호스팅하다 에 직접 연결하도록 지정합니다. 이는 기본값: |
| 부울 | 운전자 로드 밸런서 사용하여 MongoDB 에 연결하고 있는지 여부를 지정합니다. 기본값: |
| 문자열 | 운전자 시드 목록 구성하기 위해 검색하는 SRV 리소스 레코드의 서비스 이름을 지정합니다. 이 옵션을 사용하려면 연결 URI에서 DNS 시드 목록 연결 형식을 사용해야 합니다. 기본값: |
| 문자열 | SRV 기록 조회에서 반환된 호스트 이름을 검증하기 위해 드라이버가 사용하는 도메인 접미사를 지정합니다. 이 옵션을 설정하면 드라이버는 SRV 호스트 이름에서 유추된 도메인 대신 지정된 접미사에 대해 호스트 이름을 검증합니다. 값이 마침표( 이 옵션은 기본값: |
이 예시 일부인 MongoDB cluster 의 유형에 관계없이 운전자 서버 에 직접 연결합니다.
ConnectionString connectionString = "mongodb://<host>:<port>/?directConnection=true"MongoClient mongoClient = MongoClients.create(connectionString)경고
기본값 SRV 호스트 이름 유효성 검사를 변경하면 DNS 스푸핑에 대한 내장된 보호 장치가 완화되어 보안 취약점이 발생할 수 있습니다. 배포서버의 호스팅하다를 포함하는 가장 좁은 접미사를 지정하세요. 예를 들어 SRV 호스트 이름이 cluster.test.internal.example.com인 경우 srvAllowedHostsSuffix을(를) .internal.example.com(으)로 설정합니다. example.com 도메인의 모든 호스팅하다를 허용하는 .example.com(으)로 설정하지 마세요.
이러한 매개변수에 대한 자세한 내용은 ConnectionString API 설명서를 참조하세요.
applyToClusterSettings() 메서드를 체인으로 연결하여 MongoDB 클러스터와 상호 작용할 때 드라이버의 동작을 수정합니다.
다음 표에서는 설정을 연결하여 드라이버 동작을 수정할 수 있는 방법을 설명합니다.
메서드 | 설명 |
|---|---|
| 클러스터 관련 이벤트에 대한 리스너를 추가합니다. |
|
|
|
|
| Mongo 배포서버의 지정된 모든 위치를 설정합니다. |
| 서버 선택 대상 자격이 박탈되지 않는 선에서 서버가 왕복에 소요할 수 있는 시간을 설정합니다. 기본값: |
| MongoDB 배포서버에 연결하는 방법을 설정합니다. |
| 클러스터에 필요한 클러스터 유형을 설정합니다. |
| 클러스터에 필요한 복제본 세트 이름을 설정합니다. |
| 시간 초과 예외가 발생하기 전에 기본 노드를 선택할 수 있는 최대 시간을 설정합니다. 기본값: |
| 서버 선택 전에 적용할 서버 선택기를 추가합니다. |
| MongoDB 호스트를 찾기 위해 SRV DNS 레코드를 조회할 때 사용할 호스트 이름을 설정합니다. 호스팅하다 와 연결된 TXT 레코드의 처리 활성화 하려면 예를 들면 다음과 같습니다. |
| DNS 시드 목록(SRV) 연결 프로토콜을 사용할 때 드라이버가 연결할 수 있는 최대 호스트 수를 설정합니다. 이때 SRV 연결 프로토콜을 사용하지 않으면 예외가 발생합니다. |
| SRV 호스트 이름에서 유추된 도메인 대신 SRV 기록 조회에서 반환된 호스트 이름을 검증하기 위해 드라이버가 사용하는 도메인 접미사를 설정합니다. 값의 시작이 마침표( |
이 예시 일부인 MongoDB cluster 의 유형에 관계없이 운전자 서버 에 직접 연결합니다.
MongoClient mongoClient = MongoClients.create( MongoClientSettings.builder() .applyToClusterSettings(builder -> builder.mode(ClusterConnectionMode.SINGLE)) .build());팁
이는 연결 URI에 지정할 수 있는 directConnection 매개변수와 유사합니다. 자세한 내용은 연결 문자열 탭 참조하세요.
경고
기본값 SRV 호스트 이름 유효성 검사를 변경하면 DNS 스푸핑에 대한 내장 보호 장치가 완화되므로 보안 취약점이 발생할 수 있습니다. 배포서버의 호스팅하다를 포함하는 가장 좁은 접미사를 지정하세요. 예시, SRV 호스트 이름이 cluster.test.internal.example.com인 경우 ".internal.example.com"을 srvAllowedHostsSuffix()에 전달하세요. example.com 도메인의 모든 호스트를 허용하는 ".example.com"은 전달하지 마세요.
연결된 메서드에 대한 자세한 내용은 MongoClientSettings.Builder API 설명서를 참조하세요.