Java 类org.apache.zookeeper.WatchedEvent 实例源码

项目:fuck_zookeeper    文件:NettyServerCnxn.java   
@Override
public void process(WatchedEvent event) {
    ReplyHeader h = new ReplyHeader(-1, -1L, 0);
    if (LOG.isTraceEnabled()) {
        ZooTrace.logTraceMessage(LOG, ZooTrace.EVENT_DELIVERY_TRACE_MASK,
                                 "Deliver event " + event + " to 0x"
                                 + Long.toHexString(this.sessionId)
                                 + " through " + this);
    }

    // Convert WatchedEvent to a type that can be sent over the wire
    WatcherEvent e = event.getWrapper();

    try {
        sendResponse(h, e, "notification");
    } catch (IOException e1) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("Problem sending to " + getRemoteSocketAddress(), e1);
        }
        close();
    }
}
项目:hadoop    文件:TestBookKeeperConfiguration.java   
private static ZooKeeper connectZooKeeper(String ensemble)
    throws IOException, KeeperException, InterruptedException {
  final CountDownLatch latch = new CountDownLatch(1);

  ZooKeeper zkc = new ZooKeeper(HOSTPORT, ZK_SESSION_TIMEOUT, new Watcher() {
    public void process(WatchedEvent event) {
      if (event.getState() == Watcher.Event.KeeperState.SyncConnected) {
        latch.countDown();
      }
    }
  });
  if (!latch.await(ZK_SESSION_TIMEOUT, TimeUnit.MILLISECONDS)) {
    throw new IOException("Zookeeper took too long to connect");
  }
  return zkc;
}
项目:https-github.com-apache-zookeeper    文件:NettyServerCnxn.java   
@Override
public void process(WatchedEvent event) {
    ReplyHeader h = new ReplyHeader(-1, -1L, 0);
    if (LOG.isTraceEnabled()) {
        ZooTrace.logTraceMessage(LOG, ZooTrace.EVENT_DELIVERY_TRACE_MASK,
                                 "Deliver event " + event + " to 0x"
                                 + Long.toHexString(this.sessionId)
                                 + " through " + this);
    }

    // Convert WatchedEvent to a type that can be sent over the wire
    WatcherEvent e = event.getWrapper();

    try {
        sendResponse(h, e, "notification");
    } catch (IOException e1) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("Problem sending to " + getRemoteSocketAddress(), e1);
        }
        close();
    }
}
项目:linux-memory-monitor    文件:ServerMonitor.java   
/**
 * 获取Zookeeper连接
 * @return
 */
public static ZooKeeper getZooKeeperConnection() {
    try {
        // Zookeeper连接闭锁cdl
        final CountDownLatch cdl = new CountDownLatch(1);
        final ZooKeeper zooKeeper = new ZooKeeper(connectString, sessionTimeout, new Watcher() {
            @Override
            public void process(WatchedEvent watchedEvent) {
                if (watchedEvent.getState() == Event.KeeperState.SyncConnected) {
                    // 当连接成功时放开cdl
                    cdl.countDown();
                }
            }
        });
        // cdl阻塞
        cdl.await();
        return zooKeeper;
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}
项目:TakinRPC    文件:ZkClient.java   
private void processStateChanged(WatchedEvent event) {
    logger.info("zookeeper state changed (" + event.getState() + ")");
    setCurrentState(event.getState());
    if (getShutdownTrigger()) {
        return;
    }
    try {
        fireStateChangedEvent(event.getState());

        if (event.getState() == KeeperState.Expired) {
            reconnect();
            fireNewSessionEvents();
        }
    } catch (final Exception e) {
        throw new RuntimeException("Exception while restarting zk client", e);
    }
}
项目:TakinRPC    文件:ZkClient.java   
private void processDataOrChildChange(WatchedEvent event) {
    final String path = event.getPath();

    if (event.getType() == EventType.NodeChildrenChanged || event.getType() == EventType.NodeCreated || event.getType() == EventType.NodeDeleted) {
        Set<IZkChildListener> childListeners = _childListener.get(path);
        if (childListeners != null && !childListeners.isEmpty()) {
            fireChildChangedEvents(path, childListeners);
        }
    }

    if (event.getType() == EventType.NodeDataChanged || event.getType() == EventType.NodeDeleted || event.getType() == EventType.NodeCreated) {
        Set<IZkDataListener> listeners = _dataListener.get(path);
        if (listeners != null && !listeners.isEmpty()) {
            fireDataChangedEvents(event.getPath(), listeners);
        }
    }
}
项目:lionrpc    文件:ServiceDiscovery.java   
private void watchNode(final ZooKeeper zk) {
    try {
        List<String> nodeList = zk.getChildren(Constant.ZK_REGISTRY_PATH, new Watcher() {

            public void process(WatchedEvent event) {
                if (event.getType() == Event.EventType.NodeChildrenChanged) {
                    watchNode(zk);
                }
            }
        });
        List<String> dataList = new ArrayList<>();
        for (String node : nodeList) {
            byte[] bytes = zk.getData(Constant.ZK_REGISTRY_PATH + "/" + node, false, null);
            dataList.add(new String(bytes));
        }
        LOGGER.debug("node data: {}", dataList);
        this.dataList = dataList;

        LOGGER.debug("Service discovery triggered updating connected server node.");
        updateConnectedServer();
    } catch (Exception e) {
        LOGGER.error("", e);
    }
}
项目:TITAN    文件:MasterElection.java   
@Override
public void process(WatchedEvent event) {
    try {
        /* 重新注册节点 */
        zkClient.exists(nodePath, this);
        EventType eventType = event.getType();
        switch (eventType) {
        case NodeDeleted:
            createNode();
            break;
        default:
            break;
        }
    } catch (Exception e) {
        log.error("error", e);
    }
}
项目:TITAN    文件:MasterElection.java   
@Override
public void process(WatchedEvent event) {
    ZooKeeper zkClient = zookeeperConnManager.getZkClient();
    try {
        /* 重新注册节点 */
        zkClient.exists(nodePath, this);
        EventType eventType = event.getType();
        switch (eventType) {
        case NodeDeleted:
            election();
            break;
        default:
            break;
        }
    } catch (Exception e) {
        log.error("error", e);
    }
}
项目:eZooKeeper    文件:ZnodeModel.java   
@Override
public void process(WatchedEvent event) {

    if (isDestroyed()) {
        return;
    }

    if (!getZooKeeperConnection().isConnected()) {
        return;
    }

    String eventPath = event.getPath();
    EventType eventType = event.getType();

    Znode znode = getData();
    String path = znode.getPath();

    if (path.equals(eventPath) && eventType.equals(EventType.NodeDeleted)) {
        destroy();
        return;
    }

    processUpdate(event);

    fireDataModelDataChanged();
}
项目:hadoop    文件:TestZKRMStateStoreZKClientConnections.java   
@Override
public synchronized void processWatchEvent(ZooKeeper zk,
    WatchedEvent event) throws Exception {

  if (forExpire) {
    // a hack... couldn't find a way to trigger expired event.
    WatchedEvent expriredEvent = new WatchedEvent(
        Watcher.Event.EventType.None,
        Watcher.Event.KeeperState.Expired, null);
    super.processWatchEvent(zk, expriredEvent);
    forExpire = false;
    syncBarrier.await();
  } else {
    super.processWatchEvent(zk, event);
  }
}
项目:fuck_zookeeper    文件:ZooInspectorManagerImpl.java   
public void process(WatchedEvent event) {
    if (!closed) {
        try {
            if (event.getType() != EventType.NodeDeleted) {

                Stat s = zooKeeper.exists(nodePath, this);
                if (s != null) {
                    zookeeper.getChildren(nodePath, this);
                }
            }
        } catch (Exception e) {
            LoggerFactory.getLogger().error(
                    "Error occured re-adding node watcherfor node "
                            + nodePath, e);
        }
        nodeListener.processEvent(event.getPath(), event.getType()
                .name(), null);
    }
}
项目:fuck_zookeeper    文件:DataTreeTest.java   
@Test(timeout = 60000)
public void testRootWatchTriggered() throws Exception {
    class MyWatcher implements Watcher{
        boolean fired=false;
        public void process(WatchedEvent event) {
            if(event.getPath().equals("/"))
                fired=true;
        }
    }
    MyWatcher watcher=new MyWatcher();
    // set a watch on the root node
    dt.getChildren("/", new Stat(), watcher);
    // add a new node, should trigger a watch
    dt.createNode("/xyz", new byte[0], null, 0, dt.getNode("/").stat.getCversion()+1, 1, 1);
    Assert.assertFalse("Root node watch not triggered",!watcher.fired);
}
项目:otter-G    文件:ZkClientx.java   
private void processStateChanged(WatchedEvent event) {
    LOG.info("zookeeper state changed (" + event.getState() + ")");
    setCurrentState(event.getState());
    if (getShutdownTrigger()) {
        return;
    }
    try {
        fireStateChangedEvent(event.getState());

        if (event.getState() == KeeperState.Expired) {
            reconnect();
            fireNewSessionEvents();
        }
    } catch (final Exception e) {
        throw new RuntimeException("Exception while restarting zk client", e);
    }
}
项目:ZooKeeper    文件:ZooInspectorManagerImpl.java   
public void process(WatchedEvent event) {
    if (!closed) {
        try {
            if (event.getType() != EventType.NodeDeleted) {

                Stat s = zooKeeper.exists(nodePath, this);
                if (s != null) {
                    zookeeper.getChildren(nodePath, this);
                }
            }
        } catch (Exception e) {
            LoggerFactory.getLogger().error(
                    "Error occurred re-adding node watcherfor node "
                            + nodePath, e);
        }
        nodeListener.processEvent(event.getPath(), event.getType()
                .name(), null);
    }
}
项目:ZooKeeper    文件:WatcherFuncTest.java   
public void process(WatchedEvent event) {
    if (event.getState() == KeeperState.SyncConnected) {
        if (latch != null) {
            latch.countDown();
        }
    }

    if (event.getType() == EventType.None) {
        return;
    }
    try {
        events.put(event);
    } catch (InterruptedException e) {
        Assert.assertTrue("interruption unexpected", false);
    }
}
项目:azeroth    文件:ZooKeeperConnection.java   
@Override
public void process(WatchedEvent event) {
    switch (event.getState()) {
        case Disconnected:
            logger.warn("Disconnected from ZooKeeper quorum.");
            zooKeeperConnection.observers
                .forEach(ZooKeeperConnectionObserver::disconnected);
            break;
        case Expired:
            zooKeeperConnection.reset();
            break;
        case SyncConnected:
            zooKeeperConnection.observers.forEach(ZooKeeperConnectionObserver::connected);
            break;
        case AuthFailed:
        case ConnectedReadOnly:
        case SaslAuthenticated:
            break;
        default:
            break;
    }
}
项目:hadoop    文件:BKJMUtil.java   
static ZooKeeper connectZooKeeper()
    throws IOException, KeeperException, InterruptedException {
  final CountDownLatch latch = new CountDownLatch(1);

  ZooKeeper zkc = new ZooKeeper(zkEnsemble, 3600, new Watcher() {
      public void process(WatchedEvent event) {
        if (event.getState() == Watcher.Event.KeeperState.SyncConnected) {
          latch.countDown();
        }
      }
    });
  if (!latch.await(3, TimeUnit.SECONDS)) {
    throw new IOException("Zookeeper took too long to connect");
  }
  return zkc;
}
项目:https-github.com-apache-zookeeper    文件:DataTreeTest.java   
@Test(timeout = 60000)
public void testRootWatchTriggered() throws Exception {
    class MyWatcher implements Watcher{
        boolean fired=false;
        public void process(WatchedEvent event) {
            if(event.getPath().equals("/"))
                fired=true;
        }
    }
    MyWatcher watcher=new MyWatcher();
    // set a watch on the root node
    dt.getChildren("/", new Stat(), watcher);
    // add a new node, should trigger a watch
    dt.createNode("/xyz", new byte[0], null, 0, dt.getNode("/").stat.getCversion()+1, 1, 1);
    Assert.assertFalse("Root node watch not triggered",!watcher.fired);
}
项目:otter-G    文件:ZkClientx.java   
private void processDataOrChildChange(WatchedEvent event) {
    final String path = event.getPath();

    if (event.getType() == EventType.NodeChildrenChanged || event.getType() == EventType.NodeCreated
        || event.getType() == EventType.NodeDeleted) {
        Set<IZkChildListener> childListeners = _childListener.get(path);
        if (childListeners != null && !childListeners.isEmpty()) {
            fireChildChangedEvents(path, childListeners);
        }
    }

    if (event.getType() == EventType.NodeDataChanged || event.getType() == EventType.NodeDeleted
        || event.getType() == EventType.NodeCreated) {
        Set<IZkDataListener> listeners = _dataListener.get(path);
        if (listeners != null && !listeners.isEmpty()) {
            fireDataChangedEvents(event.getPath(), listeners);
        }
    }
}
项目:hadoop    文件:TestCurrentInprogress.java   
private static ZooKeeper connectZooKeeper(String ensemble)
    throws IOException, KeeperException, InterruptedException {
  final CountDownLatch latch = new CountDownLatch(1);

  ZooKeeper zkc = new ZooKeeper(HOSTPORT, 3600, new Watcher() {
    public void process(WatchedEvent event) {
      if (event.getState() == Watcher.Event.KeeperState.SyncConnected) {
        latch.countDown();
      }
    }
  });
  if (!latch.await(10, TimeUnit.SECONDS)) {
    throw new IOException("Zookeeper took too long to connect");
  }
  return zkc;
}
项目:management-sdk-for-kafka    文件:KFClusterWatcher.java   
/**
 * It listen to Zookeeper events.
 * It is called automatically by Zookeeper when a Kafka broker znode has appeared/disappeared or
 * session connect/disconnect
 *
 * @param event {@link WatchedEvent} instance sent by Zookeeper node
 */
@Override
public void process(final WatchedEvent event) {

    if (zkClient == null) {
        return;
    }

    if (event.getType() != Event.EventType.None) {
        setupWatcherAsync(); // Must initialize the watcher because it is one-shot.
        switch (event.getType()) {
            case NodeChildrenChanged:   // A kafka broker has appeared / disappeared
                updateBrokerStatus();   // Force to update brokers' status
                break;

            default:
        }
    } else {
        switch (event.getState()) {
            case SyncConnected:
            case Disconnected:
                updateBrokerStatus();   // Force to update brokers' status
                break;
            case Expired:
                restartZKConnection();  // ZK connection has expired, let's reconnect
                break;

            default:
        }
    }
}
项目:hadoop    文件:TestActiveStandbyElector.java   
/**
 * verify becomeStandby is not called if already in standby
 */
@Test
public void testSuccessiveStandbyCalls() {
  elector.joinElection(data);

  // make the object go into the monitoring standby state
  elector.processResult(Code.NODEEXISTS.intValue(), ZK_LOCK_NAME, mockZK,
      ZK_LOCK_NAME);
  Mockito.verify(mockApp, Mockito.times(1)).becomeStandby();
  verifyExistCall(1);

  WatchedEvent mockEvent = Mockito.mock(WatchedEvent.class);
  Mockito.when(mockEvent.getPath()).thenReturn(ZK_LOCK_NAME);

  // notify node deletion
  // monitoring should be setup again after event is received
  Mockito.when(mockEvent.getType()).thenReturn(Event.EventType.NodeDeleted);
  elector.processWatchEvent(mockZK, mockEvent);
  // is standby. no need to notify anything now
  Mockito.verify(mockApp, Mockito.times(0)).enterNeutralMode();
  // another joinElection called.
  Mockito.verify(mockZK, Mockito.times(2)).create(ZK_LOCK_NAME, data,
      Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL, elector, mockZK);
  // lost election
  elector.processResult(Code.NODEEXISTS.intValue(), ZK_LOCK_NAME, mockZK,
      ZK_LOCK_NAME);
  // still standby. so no need to notify again
  Mockito.verify(mockApp, Mockito.times(1)).becomeStandby();
  // monitor is set again
  verifyExistCall(2);
}
项目:fuck_zookeeper    文件:MyWatcher.java   
@Override
public void process(WatchedEvent event) {
    // TODO Auto-generated method stub
    System.out.println("Receive Watcher Event:" + event);
    if (KeeperState.SyncConnected == event.getState()) {
        countDownLatch.countDown();
    }   
}
项目:snowflake    文件:SnowflakeServer.java   
@Override
public void process(WatchedEvent watchedEvent) {
    LOGGER.info(String.format("%s/%s/%s", watchedEvent.getPath(), watchedEvent.getState(), watchedEvent.getType()));
    if (isLeader()) {
        if (watchedEvent.getState() == Event.KeeperState.Disconnected) {
            callback();
        } else if (watchedEvent.getState() == Event.KeeperState.SyncConnected) {
            callback();
        }
    }
}
项目:https-github.com-apache-zookeeper    文件:DisconnectedWatcherTest.java   
@Test
public void testDefaultWatcherAutoResetWithChroot() throws Exception {
    ZooKeeper zk1 = createClient();

    zk1.create("/ch1", null, Ids.OPEN_ACL_UNSAFE,
                CreateMode.PERSISTENT);

    MyWatcher watcher = new MyWatcher();
    ZooKeeper zk2 = createClient(watcher, hostPort + "/ch1");
    zk2.getChildren("/", true );

    // this call shouldn't trigger any error or watch
    zk1.create("/youdontmatter1", null, Ids.OPEN_ACL_UNSAFE,
            CreateMode.PERSISTENT);

    // this should trigger the watch
    zk1.create("/ch1/youshouldmatter1", null, Ids.OPEN_ACL_UNSAFE,
            CreateMode.PERSISTENT);
    WatchedEvent e = watcher.events.poll(TIMEOUT, TimeUnit.MILLISECONDS);
    Assert.assertNotNull(e);
    Assert.assertEquals(EventType.NodeChildrenChanged, e.getType());
    Assert.assertEquals("/", e.getPath());

    zk2.getChildren("/", true );

    stopServer();
    watcher.waitForDisconnected(3000);
    startServer();
    watcher.waitForConnected(3000);

    // this should trigger the watch
    zk1.create("/ch1/youshouldmatter2", null, Ids.OPEN_ACL_UNSAFE,
            CreateMode.PERSISTENT);
    e = watcher.events.poll(TIMEOUT, TimeUnit.MILLISECONDS);
    Assert.assertNotNull(e);
    Assert.assertEquals(EventType.NodeChildrenChanged, e.getType());
    Assert.assertEquals("/", e.getPath());
}
项目:ZooKeeper    文件:NIOServerCnxn.java   
@Override
synchronized public void process(WatchedEvent event) {
    ReplyHeader h = new ReplyHeader(-1, -1L, 0);
    if (LOG.isTraceEnabled()) {
        ZooTrace.logTraceMessage(LOG, ZooTrace.EVENT_DELIVERY_TRACE_MASK,
                                 "Deliver event " + event + " to 0x"
                                 + Long.toHexString(this.sessionId)
                                 + " through " + this);
    }

    // Convert WatchedEvent to a type that can be sent over the wire
    WatcherEvent e = event.getWrapper();

    sendResponse(h, e, "notification");
}
项目:ZooKeeper    文件:Zab1_0Test.java   
@Override
public void process(WatchedEvent event) {
    if (event.getType() == EventType.NodeDataChanged) {
        synchronized(this) {
            changed = true;
            notifyAll();
        }
    }
}
项目:https-github.com-apache-zookeeper    文件:WatchedEventTest.java   
@Test
public void testConvertingToEventWrapper() {
    WatchedEvent we = new WatchedEvent(EventType.NodeCreated, KeeperState.Expired, "blah");
    WatcherEvent wew = we.getWrapper();

    Assert.assertEquals(EventType.NodeCreated.getIntValue(), wew.getType());
    Assert.assertEquals(KeeperState.Expired.getIntValue(), wew.getState());
    Assert.assertEquals("blah", wew.getPath());
}
项目:ZooKeeper    文件:RecoveryTest.java   
public void process(WatchedEvent event) {
    LOG.info("Event:" + event.getState() + " " + event.getType() + " " + event.getPath());
    if (event.getState() == KeeperState.SyncConnected
            && startSignal != null && startSignal.getCount() > 0)
    {
        startSignal.countDown();
    }
}
项目:ace    文件:DefaultWatcher.java   
@Override
public void process(WatchedEvent watchedEvent) {
    EventType eventType = watchedEvent.getType();
    switch (eventType) {
        case NodeDeleted:
            System.out.println("create");
        default:

    }
    // TODO: 更新配置

}
项目:zookeeper-test-demo    文件:DataUpdateWatcher.java   
@Override
public void process(WatchedEvent event) {
    EventType eventType = event.getType();
    try {
        switch (eventType) {
        case NodeDataChanged:
            String znodeData = ZkNodeUtil.getNodeValueAsString(confPath, client, 2);
            if (nodeType.equals("xml")) {
                ConfigUtil.writeToProperties(znodeData, StringUtil.nodePathToFile(confPath));
            } else if (nodeType.equals("properties")) {
                ConfigUtil.writeToXML(znodeData, StringUtil.nodePathToFile(confPath));
            } else if (nodeType.equals("default")) {
                ConfigUtil.writeToDefault(znodeData, StringUtil.nodePathToFile(confPath));
            }
            getDefaultLogger().info(this.confPath + " 路径在zookeeper上已经被修改");
            break;
        case NodeDeleted:
            ConfigUtil.deleteFile(StringUtil.nodePathToFile(confPath));
            getDefaultLogger().info(this.confPath + " 路径在zookeeper上已经被删除");
            break;
        default:
            break;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
项目:ZooKeeper    文件:InstanceContainer.java   
public void process(WatchedEvent event) {
    if (KeeperState.Expired == event.getState()) {
        // It's all over
        LOG.error("Lost session");
        System.exit(4);
    }
    if (event.getPath() != null && event.getPath().equals(assignmentsNode)) {
        // children have changed, so read in the new list
        zk.getChildren(assignmentsNode, true, this, null);
    }
}
项目:https-github.com-apache-zookeeper    文件:Zab1_0Test.java   
@Override
public void process(WatchedEvent event) {
    if (event.getType() == EventType.NodeDataChanged) {
        synchronized(this) {
            changed = true;
            notifyAll();
        }
    }
}
项目:ZooKeeper    文件:WatchedEventTest.java   
@Test
public void testCreatingWatchedEventFromInvalidWrapper() {
    // Make sure we can't convert from an invalid wrapper

   try {
       WatcherEvent wep = new WatcherEvent(-2342, -252352, "foo");
       WatchedEvent we = new WatchedEvent(wep);
       Assert.fail("Was able to create WatchedEvent from bad wrapper");
   } catch (RuntimeException re) {
       // we're good
   }
}
项目:eZooKeeper    文件:ZnodeModel.java   
@Override
protected void processUpdate(WatchedEvent event) {
    Stat stat = updateZnodeStat(_ExistsWatcher);
    if (stat != null) {
        updateZnodeData(stat, null);
        updateZnodeAcl(stat);
    }
}
项目:eZooKeeper    文件:ZnodeModel.java   
@Override
protected void processUpdate(WatchedEvent event) {

    Znode znode = getData();
    Stat stat = znode.getStat();
    updateZnodeData(stat, _GetDataWatcher);
    updateZnodeAcl(stat);
}
项目:ZooKeeper    文件:WatcherTest.java   
public void process(WatchedEvent event) {
    super.process(event);
    if (event.getType() != Event.EventType.None) {
        timeOfLastWatcherInvocation = System.currentTimeMillis();
        try {
            events.put(event);
        } catch (InterruptedException e) {
            LOG.warn("ignoring interrupt during event.put");
        }
    }
}
项目:https-github.com-apache-zookeeper    文件:GenerateLoad.java   
public void process(WatchedEvent event) {
    System.err.println(event);
    synchronized (this) {
        if (event.getType() == EventType.None) {
            connected = (event.getState() == KeeperState.SyncConnected);
            notifyAll();
        }
    }
}
项目:ZooKeeper    文件:SaslAuthMissingClientConfigTest.java   
@Override
public synchronized void process(WatchedEvent event) {
    if (event.getState() == KeeperState.AuthFailed) {
        authFailed.incrementAndGet();
    }
    else {
        super.process(event);
    }
}