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

MongoDB에 연결

이 페이지의 내용

  • 개요
  • 연결
  • 로컬 배포
  • Atlas
  • 복제본 세트
  • 샤딩된 클러스터
  • 연결 옵션

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

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

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

중요

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

이 가이드 에서는 Project Reactor 라이브러리를 사용하여 Java Reactive Streams 운전자 메서드에서 반환된 Publisher 인스턴스를 사용합니다. Project 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());

연결 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);

돌아가기

다음 단계