
hasWritableServer() 메서드는 TopologyDescription 객체가 writable 서버를 가지고 있는지 여부를 확인하는 메서드입니다. 이 메서드는 단일 writable 서버를 확인하는 데 사용됩니다.
여러 개의 writable 서버가 있는 경우, 모든 writable 서버를 확인하려면 hasWritableServer() 메서드를 사용할 때 주의해야 하는 점은 다음과 같습니다.
- hasWritableServer() 메서드는 TopologyDescription 객체의 첫 번째 writable 서버를 확인합니다. 따라서 모든 writable 서버를 확인하려면 TopologyDescription 객체의 writable 서버 목록을 순회해야 합니다.
- writable 서버 목록을 순회하는 방법은 TopologyDescription 객체의 getServers() 메서드를 사용하여 writable 서버 목록을 얻은 후, 목록을 순회하여 writable 서버를 확인하는 것입니다.
다음은 writable 서버를 확인하는 예제입니다.
#hostingforum.kr
java
// TopologyDescription 객체를 얻은 후
TopologyDescription topologyDescription = mongoClient.getTopology();
// writable 서버 목록을 얻습니다.
List writableServers = topologyDescription.getServers();
// writable 서버 목록을 순회하여 writable 서버를 확인합니다.
for (ServerDescription serverDescription : writableServers) {
if (serverDescription.isWritable()) {
System.out.println("Writable 서버가 있습니다.");
}
}
또한, MongoDB Driver 4.3 버전부터는 TopologyDescription 객체의 getPrimary() 메서드를 사용하여 writable 서버를 확인할 수 있습니다. getPrimary() 메서드는 writable 서버를 반환합니다.
#hostingforum.kr
java
// TopologyDescription 객체를 얻은 후
TopologyDescription topologyDescription = mongoClient.getTopology();
// writable 서버를 확인합니다.
ServerDescription writableServer = topologyDescription.getPrimary();
if (writableServer != null) {
System.out.println("Writable 서버가 있습니다.");
}
이러한 방법을 사용하여 writable 서버를 확인할 수 있습니다.
2025-06-10 19:55