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

읽기 설정

이 페이지의 내용

  • 개요
  • 배포 수준에서 읽기 설정 구성
  • 데이터베이스 또는 컬렉션 수준에서 읽기 설정 구성
  • 배포 수준에서 읽기 고려 구성
  • 데이터베이스 또는 컬렉션 수준에서 읽기 고려 구성
  • 읽기 고려, 읽기 설정 및 쓰기 고려 결합
  • 추가 정보

읽을 복제본 세트 의 멤버를 선택하려면 Java Reactive Streams 운전자 를 사용하여 읽기 설정을 구성하면 됩니다. 읽기 고려를 구성하여 복제본 세트 및 샤딩된 클러스터에서 읽은 데이터의 일관성 및 격리 속성을 추가로 제어할 수 있습니다. 이 가이드 에서는 MongoDB Java Reactive Streams 드라이버 를 사용하여 읽기 설정 및 읽기 고려를 구성하는 방법을 학습 수 있습니다.

다음 수준에서 읽기 설정 (read preference) 및 읽기 고려 (read concern) 를 구성할 수 있습니다.

  • MongoDB deployment 의 경우

  • 데이터베이스 의 경우

  • 컬렉션

다음과 같은 방법으로 배포서버 수준에서 읽기 설정 (read preference) 을 구성할 수 있습니다.

  • 다음 코드에 표시된 대로 MongoClientSettings 인스턴스 를 만듭니다.

    MongoClient mongoClient = MongoClients.create(MongoClientSettings.builder()
    .applyConnectionString(new ConnectionString("mongodb://host1,host2"))
    .readPreference(ReadPreference.secondary())
    .build());
  • 다음 코드에 표시된 대로 ConnectionString 인스턴스 를 만듭니다.

    MongoClient mongoClient =
    MongoClients.create("mongodb://host1:27017,host2:27017/?readPreference=secondary");

다음과 같은 방법으로 데이터베이스 또는 컬렉션 수준에서 읽기 설정 (read preference) 을 구성할 수 있습니다.

  • 다음 코드와 같이 MongoDatabase 에서 withReadPreference() 메서드를 사용합니다.

    MongoDatabase database = mongoClient.getDatabase("test")
    .withReadPreference(ReadPreference.secondary());
  • 다음 코드와 같이 MongoCollection 에서 withReadPreference() 메서드를 사용합니다.

    MongoCollection<Document> collection = database.getCollection("restaurants")
    .withReadPreference(ReadPreference.secondary());

MongoDatabase MongoCollection 인스턴스는 변경할 수 없습니다. 기존 MongoDatabase 또는 MongoCollection 인스턴스에서 withReadPreference() 를 호출하면 새 인스턴스가 반환되며 메서드가 호출되는 인스턴스에는 영향을 주지 않습니다.

다음 예시 에서는 collectionWithReadPref 인스턴스 의 읽기 설정 (read preference) 이 primaryPreferred 인 반면 collection 의 읽기 설정 (read preference) 은 영향을 받지 않습니다.

MongoCollection<Document> collectionWithReadPref = collection.withReadPreference(ReadPreference.primaryPreferred());

다음과 같은 방법으로 배포서버 수준에서 읽기 고려 (read concern) 를 구성할 수 있습니다.

  • 다음 코드에 표시된 대로 MongoClientSettings 인스턴스 를 만듭니다.

    MongoClient mongoClient = MongoClients.create(MongoClientSettings.builder()
    .applyConnectionString(new ConnectionString("mongodb://host1,host2"))
    .readConcern(ReadConcern.MAJORITY)
    .build());
  • 다음 코드에 표시된 대로 ConnectionString 인스턴스 를 만듭니다.

    MongoClient mongoClient =
    MongoClients.create("mongodb://host1:27017,host2:27017/?readConcernLevel=majority");

다음과 같은 방법으로 데이터베이스 또는 컬렉션 수준에서 읽기 고려 (read concern) 를 구성할 수 있습니다.

  • 다음 코드와 같이 MongoDatabase 에서 withReadConcern() 메서드를 사용합니다.

    MongoDatabase database = mongoClient.getDatabase("test")
    .withReadConcern(ReadConcern.MAJORITY);
  • 다음 코드와 같이 MongoCollection 에서 withReadConcern() 메서드를 사용합니다.

    MongoCollection<Document> collection = database.getCollection("restaurants")
    .withReadConcern(ReadConcern.MAJORITY);

MongoDatabase MongoCollection 인스턴스는 변경할 수 없습니다. 기존 MongoDatabase 또는 MongoCollection 인스턴스에서 withReadConcern() 를 호출하면 새 인스턴스가 반환되며 메서드가 호출되는 인스턴스에는 영향을 주지 않습니다.

다음 예제에서 collWithReadConcern 인스턴스에는 AVAILABLE 읽기 고려가 있는 반면 인스턴스의 읽기 collection 고려는 영향을 받지 않습니다.

MongoCollection<Document> collWithReadConcern =
collection.withReadConcern(ReadConcern.AVAILABLE);

읽기 고려, 읽기 설정 및 쓰기 고려의 조합을 포함하도록 MongoClientSettings, MongoDatabase 또는 MongoCollection 인스턴스를 빌드할 수 있습니다.

예를 들어 다음 코드는 컬렉션 수준에서 이 세 가지를 모두 설정합니다.

collection = database.getCollection("restaurants")
.withReadPreference(ReadPreference.primary())
.withReadConcern(ReadConcern.MAJORITY)
.withWriteConcern(WriteConcern.MAJORITY);

읽기 설정( 읽기 설정 (read preference) )에 학습 보려면 MongoDB Server 매뉴얼에서 읽기 설정(read preference) 가이드 를 참조하세요. 읽기 고려 (read concern) 고려에 학습 보려면 MongoDB Server 매뉴얼의 읽기 고려 가이드 를 참조하세요.

돌아가기

데이터 커서