개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.04 06:21

MongoDBDriverTopologyDescription::getServers 관련 질문

  • 스택오버플로우러버 12일 전 2025.03.04 06:21
  • 10
    1
저는 MongoDBDriverTopologyDescription::getServers 메서드를 사용하여 MongoDB 서버 목록을 가져오고자 합니다. 그러나 이 메서드의 반환값은 ServerAddress 형식의 목록이라고 하여도 무방하며, 각 서버의 상태에 대한 정보를 얻는 방법을 모르겠습니다. 이에 대해 어떻게 구현해야 할까요?

서버 목록을 가져올 때, 각 서버의 상태에 대한 정보를 얻는 방법은 무엇이며, 해당 메서드의 반환값을 어떻게 처리해야 할까요?

예를 들어, 다음과 같은 코드를 작성했을 때, 각 서버의 상태에 대한 정보를 얻는 방법은 무엇인지 알려주시겠습니까?

java

MongoClient client = MongoClientFactory.getMongoClient();

MongoDatabase database = client.getDatabase("mydatabase");

MongoCollection collection = database.getCollection("mycollection");



MongoDriverTopologyDescription topologyDescription = client.getTopologyDescription();

List servers = topologyDescription.getServers();



위 코드를 작성했을 때, 각 서버의 상태에 대한 정보를 얻는 방법은 무엇인지 알려주시겠습니까?

    댓글목록

    profile_image
    나우호스팅  12일 전



    MongoDBDriverTopologyDescription::getServers 메서드의 반환값은 ServerAddress 형식의 목록입니다. 각 서버의 상태에 대한 정보를 얻으려면, MongoDBDriverTopologyDescription::getServers 메서드의 반환값을 처리하는 방법을 알아야 합니다.

    MongoDBDriverTopologyDescription::getServers 메서드의 반환값을 처리하는 방법은 다음과 같습니다.

    1. MongoDBDriverTopologyDescription::getServers 메서드의 반환값을 List 형식으로 받습니다.
    2. List 형식의 목록을 반복하여 각 ServerAddress 객체를 가져옵니다.
    3. 각 ServerAddress 객체의 getHost() 메서드를 사용하여 서버의 호스트 이름을 가져옵니다.
    4. 각 ServerAddress 객체의 getPort() 메서드를 사용하여 서버의 포트 번호를 가져옵니다.
    5. 각 ServerAddress 객체의 isReplicaSet() 메서드를 사용하여 서버가 리플리카 세트에 속하는지 여부를 확인합니다.
    6. 각 ServerAddress 객체의 isArbiterOnly() 메서드를 사용하여 서버가 아르비터 전용 서버인지 여부를 확인합니다.
    7. 각 ServerAddress 객체의 isHidden() 메서드를 사용하여 서버가 숨겨진 서버인지 여부를 확인합니다.

    위 코드를 작성했을 때, 각 서버의 상태에 대한 정보를 얻는 방법은 다음과 같습니다.

    #hostingforum.kr
    java
    
    MongoClient client = MongoClientFactory.getMongoClient();
    
    MongoDatabase database = client.getDatabase("mydatabase");
    
    MongoCollection collection = database.getCollection("mycollection");
    
    
    
    MongoDriverTopologyDescription topologyDescription = client.getTopologyDescription();
    
    List servers = topologyDescription.getServers();
    
    
    
    for (ServerAddress server : servers) {
    
        String host = server.getHost();
    
        int port = server.getPort();
    
        boolean isReplicaSet = server.isReplicaSet();
    
        boolean isArbiterOnly = server.isArbiterOnly();
    
        boolean isHidden = server.isHidden();
    
    
    
        System.out.println("Host: " + host);
    
        System.out.println("Port: " + port);
    
        System.out.println("Is Replica Set: " + isReplicaSet);
    
        System.out.println("Is Arbiter Only: " + isArbiterOnly);
    
        System.out.println("Is Hidden: " + isHidden);
    
        System.out.println();
    
    }
    
    


    위 코드를 실행하면, 각 서버의 호스트 이름, 포트 번호, 리플리카 세트 여부, 아르비터 전용 서버 여부, 숨겨진 서버 여부가 출력됩니다.

    2025-03-04 06:22

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 4,005건 / 236 페이지

검색

게시물 검색