Docs Menu
Docs Home
/ / /
Java Reactive Streams 드라이버
/

연결 대상 선택

이 페이지의 내용

  • 개요
  • Atlas
  • 로컬 배포
  • 복제본 세트
  • 초기화
  • API 문서

이 가이드 에서는 연결 string 과 MongoClient 객체 를 사용하여 다양한 유형의 MongoDB deployment에 연결하는 방법을 학습 수 있습니다.

MongoDB 에서 deployment에 Atlas 연결하려면 연결 에 다음 요소를 string 포함하세요.

  • Atlas cluster의 URL

  • MongoDB 사용자 이름

  • MongoDB 비밀번호

그런 다음 MongoClient 객체 를 구성하는 create() 메서드에 연결 string 을 전달합니다.

Atlas 드라이버 연결 가이드 에 따라 연결 string 을 검색합니다.

Atlas 에 연결할 때 Stable API 클라이언트 옵션을 사용하여 Atlas 를 새 버전의 MongoDB Server 로 업그레이드할 때 호환성이 손상되는 변경을 방지하는 것이 좋습니다. Stable API 기능 에 학습 보려면 MongoDB Server 매뉴얼에서 Stable API 를 참조하세요.

다음 코드는 Java Reactive Streams 운전자 를 사용하여 Atlas cluster 에 연결하는 방법을 보여줍니다. 이 코드는 serverApi 옵션을 사용하여 Stable API 버전을 지정합니다.

중요

Reactor 라이브러리 메서드

이 가이드 에서는 Reactive Streams 사양을 기반으로 하는 라이브러리인 Reactor 라이브러리의 메서드를 사용합니다. Reactor를 설치하려면 Reactor 가져 오기 를 참조하세요. Project Reactor 문서에서 확인 가능합니다.

import com.mongodb.ConnectionString;
import com.mongodb.MongoClientSettings;
import com.mongodb.ServerApi;
import com.mongodb.ServerApiVersion;
import org.bson.BsonDocument;
import org.bson.BsonInt64;
import com.mongodb.reactivestreams.client.MongoClient;
import com.mongodb.reactivestreams.client.MongoClients;
import com.mongodb.reactivestreams.client.MongoDatabase;
import org.bson.conversions.Bson;
import reactor.core.publisher.Mono;
public class testing {
public static void main(String[] args) {
// Replace the placeholder with your Atlas connection string
String uri = "<connection string>";
// Construct a ServerApi instance using the ServerApi.builder() method
ServerApi serverApi = ServerApi.builder()
.version(ServerApiVersion.V1)
.build();
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(new ConnectionString(uri))
.serverApi(serverApi)
.build();
// Create a new client and connect to the server
try (MongoClient mongoClient = MongoClients.create(settings))
{
MongoDatabase database = mongoClient.getDatabase("<database name>");
Bson command = new BsonDocument("ping", new BsonInt64(1));
Mono.from(database.runCommand(command))
.doOnSuccess(x -> System.out.println("Pinged your deployment. You successfully connected to MongoDB!"))
.doOnError(err -> System.out.println("Error: " + err.getMessage()))
.block();
}
}
}

로컬 MongoDB deployment에 연결하려면 localhost 을 호스트 이름으로 사용합니다. 기본적으로 mongod 프로세스는 포트 27017 에서 실행되지만, 배포서버에 맞게 사용자 지정할 수 있습니다.

다음 코드는 Java Reactive Streams 운전자 를 사용하여 로컬 MongoDB deployment 에 연결하는 방법을 보여줍니다.

import com.mongodb.reactivestreams.client.MongoClients;
import com.mongodb.reactivestreams.client.MongoClient;
public class MongoConnection {
public static void main(String[] args) {
String uri = "mongodb://localhost:27017/";
try (MongoClient client = MongoClients.create(uri)) {
// use `client` here
}
}
}

복제본 세트에 연결하려면 연결 에 IP 복제본 세트 멤버의 호스트 이름(또는 주소)과 포트 번호를 string 지정합니다.

복제본 세트 에 있는 호스트의 전체 목록을 제공할 수 없는 경우, 복제본 복제본 세트 에 있는 호스트 중 하나 이상을 지정하고 다른 호스트를 찾기 위해 자동 검색을 수행하도록 Java Reactive Streams 운전자 에 지시할 수 있습니다. 운전자 에 자동 검색을 수행하도록 지시하려면 다음 작업 중 하나를 수행합니다.

  • 복제본 세트의 이름을 replicaSet 매개변수의 값으로 지정합니다.

  • directConnection 매개 변수의 값으로 false를 지정합니다.

  • 복제본 세트에 둘 이상의 호스트를 지정합니다.

다음 예시에서 드라이버는 샘플 연결 URI를 사용하여 host1를 포함하여 서로 다른 세 호스트의 27017 포트에서 실행 중인 MongoDB 복제본 세트 sampleRS에 연결합니다.

import com.mongodb.reactivestreams.client.MongoClients;
import com.mongodb.reactivestreams.client.MongoClient;
public class MongoConnection {
public static void main(String[] args) {
String uri = "mongodb://localhost:27017/?replicaSet=sampleRS";
try (MongoClient client = MongoClients.create(uri)) {
// use `client` here
}
}
}

참고

create()는 비블로킹입니다.

MongoClient 를 구성하는 create() 메서드는 비블로킹 입니다. 복제본 세트 에 연결하면 클라이언트 가 배경 스레드를 사용하여 복제본 세트 에 연결하는 동안 메서드가 즉시 반환됩니다.

MongoClient 를 생성하고 해당 nodes 속성의 string 표현을 즉시 출력하는 경우, 클라이언트 가 복제본 세트 멤버에 연결하는 동안 목록이 비어 있을 수 있습니다.

복제본 세트 를 초기화하려면 단일 멤버에 직접 연결해야 합니다. 이렇게 하려면 directConnection 연결 옵션을 True 로 설정하다 합니다. 다음과 같은 방법으로 이 작업을 수행할 수 있습니다.

  • MongoClient을 구성하는 create() 메서드에 인수를 전달합니다.

  • 연결 string 에서 매개변수를 설정합니다.

import com.mongodb.reactivestreams.client.MongoClients;
import com.mongodb.reactivestreams.client.MongoClient;
public class MongoConnection {
public static void main(String[] args) {
try (MongoClient client =
MongoClients.create("mongodb://<hostname>:<port>", directConnection=True)){
// use `client` here
}
}
}
import com.mongodb.reactivestreams.client.MongoClients;
import com.mongodb.reactivestreams.client.MongoClient;
public class MongoConnection {
public static void main(String[] args) {
String uri = "mongodb://<hostname>:<port>/?directConnection=true";
try (MongoClient client = MongoClients.create(uri)){
// use `client` here
}
}
}

Java Reactive Streams 운전자 에서 MongoClient 인스턴스 를 만드는 방법에 학습 보려면 다음 API 문서를 참조하세요.

돌아가기

MongoClient 만들기