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

MongoDB에 연결

이 페이지에는 다양한 설정을 사용하여 Java Reactive Streams 애플리케이션 을 MongoDB 에 연결하는 방법을 보여주는 코드 예제가 포함되어 있습니다.

이 페이지의 연결 옵션에 대해 자세히 알아보려면 각 섹션에 제공된 링크를 참조하세요.

이 페이지의 연결 예제를 사용하려면 코드 예제를 샘플 애플리케이션 또는 자체 애플리케이션에 복사합니다. 코드 예제의 모든 자리 표시자(예: <Atlas connection string>)를 MongoDB 배포에 필요한 관련 값으로 바꿔야 합니다.

중요

프로젝트 리액터 라이브러리

이 가이드 Project Reactor 라이브러리를 사용하여 Java Reactive Streams 운전자 메서드에서 반환된 Publisher 인스턴스를 사용합니다. 프로젝트 Reactor 라이브러리와 사용 방법에 대해 자세히 학습 Reactor 문서에서 시작하기 를 참조하세요. 이 가이드 에서 Project Reactor 라이브러리 메서드를 사용하는 방법에 대해 자세히 학습 MongoDB 에 데이터 쓰기 가이드 참조하세요.

다음 샘플 애플리케이션을 사용하여 이 페이지의 코드 예제를 테스트할 수 있습니다. 샘플 애플리케이션을 사용하려면 다음 단계를 수행하세요.

  1. IDE에서 새 Java 프로젝트 를 만듭니다.

  2. Java 프로젝트 에 Java Reactive Streams 운전자 를 설치합니다.

  3. 프로젝트 리액터 라이브러리 설치 Java 프로젝트 에서 .

  4. 다음 코드를 복사하여 ConnectionApp.java 이라는 새 Java 파일 에 붙여넣습니다.

  5. 이 페이지에서 코드 예제를 복사하여 파일의 지정된 줄에 붙여넣습니다.

1import com.mongodb.ConnectionString;
2import com.mongodb.MongoClientSettings;
3import com.mongodb.ServerApi;
4import com.mongodb.ServerApiVersion;
5
6import org.bson.BsonDocument;
7import org.bson.BsonInt64;
8import org.bson.Document;
9
10import com.mongodb.reactivestreams.client.MongoClient;
11import com.mongodb.reactivestreams.client.MongoClients;
12import com.mongodb.reactivestreams.client.MongoDatabase;
13import org.bson.conversions.Bson;
14import reactor.core.publisher.Mono;
15
16class ConnectionApp {
17 public static void main(String[] args) {
18 //start example code here
19
20 //end example code here
21 {
22 Bson command = new BsonDocument("ping", new BsonInt64(1));
23 MongoDatabase database = mongoClient.getDatabase("admin");
24 Publisher<Document> MonoPublisher = database.runCommand(command);
25
26 Mono.from(MonoPublisher)
27 .doOnSuccess(x -> System.out.println("Pinged your deployment. You successfully connected to MongoDB!"))
28 .doOnError(err -> System.out.println("Error: " + err.getMessage()))
29 .block();
30
31 //other application code
32
33 }
34 }
35}
String uri = "mongodb://<hostname>:<port>/";
try (MongoClient mongoClient = MongoClients.create(uri))
String uri = "<Atlas connection string>";
ServerApi serverApi = ServerApi.builder()
.version(ServerApiVersion.V1)
.build();
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(new ConnectionString(uri))
.serverApi(serverApi)
.build();
try (MongoClient mongoClient = MongoClients.create(settings))
String uri = "mongodb://<replica set member>:<port>/?replicaSet=<replica set name>";
try (MongoClient mongoClient = MongoClients.create(uri))

샤드 클러스터에 연결하려면 mongos 인스턴스를 MongoClients.create() 메서드에 하나 이상 지정합니다. 샤드 클러스터에 대해 자세히 알아보려면 MongoDB Server 매뉴얼의 샤딩 을 참조하세요.

다음과 같은 방법으로 단일 mongos 인스턴스에 연결할 수 있습니다.

  • 다음 코드와 같이 연결 string 에 호스트 이름과 포트를 지정합니다.

    MongoClient mongoClient = MongoClients.create( "mongodb://<hostname>:<port>" );
  • 다음 코드에 표시된 대로 localhost:27017에서 mongos 가 실행 경우 연결 string 을 제외합니다.

    MongoClient mongoClient = MongoClients.create();

다음과 같은 방법으로 여러 mongos 인스턴스에 연결할 수 있습니다.

  • 다음 코드에 표시된 대로 호스트 이름과 포트를 포함할 연결 string 을 지정합니다.

    MongoClient mongoClient = MongoClients.create("mongodb://<first hostname>:<first port>,<second hostname>:<second port>");
  • 다음 코드와 같이 각 인스턴스 에 해당하는 ServerAddress 객체 목록을 지정합니다.

    MongoClient mongoClient = MongoClients.create(
    MongoClientSettings.builder()
    .applyToClusterSettings(builder ->
    builder.hosts(Arrays.asList(
    new ServerAddress("<first hostname>", <first port>),
    new ServerAddress("<second hostname", <second port>))))
    .build());

중요

The Java Reactive Streams 운전자 UnixServerAddress 객체 또는 도메인 소켓 연결을 지원 하지 않습니다. 도메인 소켓을 사용하여 연결하려면 Java 동기화 드라이버 사용합니다. 그렇지 않으면 ServerAddress 객체를 사용하여 Java Reactive Streams 운전자에서 연결합니다.

연결 string 이나 MongoClientSettings 유형 또는 둘 다를 사용하여 연결 설정을 지정할 수 있습니다.

예를 예시 다음 코드와 같이 연결 string 에 TLS/SSL 및 인증 설정을 지정할 수 있습니다.

MongoClient mongoClient = MongoClients.create("mongodb://user1:pwd1@host1/?authSource=db1&ssl=true");

다음 코드와 같이 MongoClientSettings 인스턴스 를 사용하여 TLS/SSL을 지정하고 MongoCredential 유형을 사용하여 인증 정보를 저장 수도 있습니다.

String user; // the username
String database; // the name of the database in which the user is defined
char[] password; // the password as a character array
// ...
MongoCredential credential = MongoCredential.createCredential(user, database, password);
MongoClientSettings settings = MongoClientSettings.builder()
.credential(credential)
.applyToSslSettings(builder -> builder.enabled(true))
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("host1", 27017))))
.build();
MongoClient mongoClient = MongoClients.create(settings);

경우에 따라 다음 코드와 같이 연결 string 을 프로그래밍 구성과 결합해야 할 수 있습니다.

ConnectionString connectionString = new ConnectionString("mongodb://host1:27107,host2:27017/?ssl=true");
CommandListener myCommandListener = ...;
MongoClientSettings settings = MongoClientSettings.builder()
.addCommandListener(myCommandListener)
.applyConnectionString(connectionString)
.build();
MongoClient mongoClient = MongoClients.create(settings);

돌아가기

다음 단계

이 페이지의 내용