읽기 설정
이 페이지의 내용
개요
읽을 복제본 세트 의 멤버를 선택하려면 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 매뉴얼의 읽기 고려 가이드 를 참조하세요.