개발자 Q&A

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

2025.06.24 23:21

Zookeeper::setWatcher 관련 질문

목록
  • SCSS연구가 24일 전 2025.06.24 23:21
  • 57
    1
제가 공부 중인 Zookeeper에 대해 질문을 드리겠습니다.

Zookeeper::setWatcher 메소드는 어떤 역할을 하는 것인지 궁금합니다.

이 메소드는 watcher를 등록하는 것일까요?

그리고 watcher가 등록된 후에 어떤 일이 발생하는지 궁금합니다.

예를 들어, 특정 노드가 생성되거나 삭제될 때 watcher가 호출되는지 궁금합니다.

혹시 예시 코드나 설명을 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  24일 전



    Zookeeper::setWatcher 메소드는 ZooKeeper 서버에 대한 이벤트를 감지하기 위한 리스너를 등록하는 메소드입니다. 이 메소드는 특정 이벤트(예: 노드 생성, 삭제, 데이터 변경 등)가 발생할 때 호출되는 리스너를 등록하는 역할을 합니다.

    이 메소드를 호출하면 ZooKeeper 서버는 등록된 리스너에게 이벤트를 알립니다. 예를 들어, 특정 노드가 생성되거나 삭제될 때 등록된 리스너는 호출되어 이벤트를 처리할 수 있습니다.

    Zookeeper::setWatcher 메소드를 사용하는 예제는 다음과 같습니다.

    ```java
    import org.apache.zookeeper.Watcher;
    import org.apache.zookeeper.KeeperException;
    import org.apache.zookeeper.CreateMode;
    import org.apache.zookeeper.ZooDefs;
    import org.apache.zookeeper.ZooKeeper;

    public class ZookeeperWatcherExample {
    public static void main(String[] args) throws Exception {
    // ZooKeeper 서버 주소
    String zkServer = "localhost:2181";

    // ZooKeeper 객체 생성
    ZooKeeper zk = new ZooKeeper(zkServer, 10000, null);

    // 리스너 등록
    zk.create("/node1", "data1".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node2", "data2".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node3", "data3".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node4", "data4".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node5", "data5".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node6", "data6".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node7", "data7".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node8", "data8".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node9", "data9".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node10", "data10".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node11", "data11".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node12", "data12".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node13", "data13".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node14", "data14".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node15", "data15".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node16", "data16".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node17", "data17".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node18", "data18".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node19", "data19".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node20", "data20".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node21", "data21".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node22", "data22".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node23", "data23".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node24", "data24".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node25", "data25".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node26", "data26".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node27", "data27".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node28", "data28".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node29", "data29".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node30", "data30".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node31", "data31".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node32", "data32".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node33", "data33".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node34", "data34".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node35", "data35".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node36", "data36".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node37", "data37".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node38", "data38".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node39", "data39".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node40", "data40".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node41", "data41".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node42", "data42".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node43", "data43".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node44", "data44".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node45", "data45".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node46", "data46".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node47", "data47".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

    // 리스너 등록
    zk.create("/node48", "data48

    2025-06-24 23:22

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

검색

게시물 검색