
MongoDBDriverManager의 getReadPreference() 메서드는 MongoDB 드라이버의 읽기 선호도(read preference) 설정을 반환합니다. 읽기 선호도는 MongoDB에서 데이터를 읽을 때 사용하는 노드의 선택을 결정하는데 사용됩니다.
읽기 선호도에는 다음과 같은 종류가 있습니다.
- PrimaryOnly: 데이터를 읽을 때는 항상 PRIMARY 노드만을 사용합니다.
- PrimaryPreferred: 데이터를 읽을 때는 PRIMARY 노드를 우선적으로 사용합니다. PRIMARY 노드가 없을 때는 SECONDARY 노드를 사용합니다.
- Secondary: 데이터를 읽을 때는 SECONDARY 노드만을 사용합니다.
- SecondaryPreferred: 데이터를 읽을 때는 SECONDARY 노드를 우선적으로 사용합니다. SECONDARY 노드가 없을 때는 PRIMARY 노드를 사용합니다.
- Nearest: 데이터를 읽을 때는 가장 가까운 노드를 사용합니다.
- Local: 데이터를 읽을 때는 로컬 노드를 사용합니다.
- Unknown: 읽기 선호도 설정이 없거나 잘못된 경우를 나타냅니다.
getReadPreference() 메서드를 사용하여 읽기 선호도를 설정하고, 그 결과로 반환되는 읽기 선호도 설정은 다음과 같이 작동합니다.
1. 읽기 선호도를 설정합니다. 예를 들어, PrimaryPreferred를 설정합니다.
2. MongoDB 드라이버는 읽기 선호도 설정에 따라 데이터를 읽을 노드를 선택합니다.
3. MongoDB 드라이버는 선택된 노드에서 데이터를 읽습니다.
4. 읽기 선호도 설정에 따라 데이터를 읽은 노드의 결과를 반환합니다.
예를 들어, PrimaryPreferred를 설정한 경우, MongoDB 드라이버는 PRIMARY 노드를 우선적으로 사용합니다. PRIMARY 노드가 없을 때는 SECONDARY 노드를 사용합니다. 데이터를 읽은 노드의 결과를 반환합니다.
#hostingforum.kr
java
MongoClientSettings settings = MongoClientSettings.builder()
.readPreference(ReadPreference.primaryPreferred())
.build();
MongoClient mongoClient = MongoClients.create(settings);
MongoDatabase database = mongoClient.getDatabase("mydatabase");
MongoCollection collection = database.getCollection("mycollection");
Document document = collection.find().first();
위 예제에서는 PrimaryPreferred를 설정하여 PRIMARY 노드를 우선적으로 사용합니다. PRIMARY 노드가 없을 때는 SECONDARY 노드를 사용합니다. 데이터를 읽은 노드의 결과를 반환합니다.
2025-03-10 20:49