
MongoDBDriverManager::getReadPreference 메소드는 MongoDB 데이터베이스에서 읽기 작업을 수행할 때 데이터를 읽어올 위치를 결정하는 데 사용됩니다.
PRIMARY 옵션은 읽기 작업을 데이터가 실제로 저장되는 위치인 PRIMARY 노드에서 수행합니다. 이 옵션은 읽기 작업의 성능이 가장 좋지만, PRIMARY 노드가 다운되거나 복제가 지연되는 경우 읽기 작업이 실패할 수 있습니다.
SECONDARY 옵션은 읽기 작업을 데이터가 복제되는 위치인 SECONDARY 노드에서 수행합니다. 이 옵션은 PRIMARY 노드가 다운되거나 복제가 지연되는 경우 읽기 작업이 실패하지 않도록 보장하지만, 읽기 작업의 성능이 PRIMARY 옵션보다 느릴 수 있습니다.
일반적으로 PRIMARY 옵션을 사용하는 경우는 다음과 같습니다.
- 읽기 작업이 빈번하게 발생하는 경우
- 읽기 작업이 실시간으로 발생하는 경우
- 데이터의 일관성이 중요하거나 PRIMARY 노드가 다운되지 않는 경우
일반적으로 SECONDARY 옵션을 사용하는 경우는 다음과 같습니다.
- 읽기 작업이 빈번하게 발생하지 않는 경우
- 읽기 작업이 지연되거나 PRIMARY 노드가 다운될 수 있는 경우
- 데이터의 일관성이 중요하지 않거나 PRIMARY 노드가 다운될 수 있는 경우
MongoDBDriverManager::getReadPreference 메소드를 사용하여 적절한 읽기 선호도를 설정하는 방법은 다음과 같습니다.
- PRIMARY 옵션을 사용하려면 getReadPreference 메소드에 PRIMARY를 전달합니다.
- SECONDARY 옵션을 사용하려면 getReadPreference 메소드에 SECONDARY를 전달합니다.
예를 들어, PRIMARY 옵션을 사용하는 코드는 다음과 같습니다.
#hostingforum.kr
java
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase mongoDatabase = mongoClient.getDatabase("mydatabase");
MongoCollection mongoCollection = mongoDatabase.getCollection("mycollection");
MongoDriverManager mongoDriverManager = new MongoDriverManager(mongoClient);
mongoDriverManager.getReadPreference(ReadPreference.primary());
예를 들어, SECONDARY 옵션을 사용하는 코드는 다음과 같습니다.
#hostingforum.kr
java
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase mongoDatabase = mongoClient.getDatabase("mydatabase");
MongoCollection mongoCollection = mongoDatabase.getCollection("mycollection");
MongoDriverManager mongoDriverManager = new MongoDriverManager(mongoClient);
mongoDriverManager.getReadPreference(ReadPreference.secondary());
2025-08-11 12:27