Example usage for org.apache.zookeeper WatchedEvent getPath

List of usage examples for org.apache.zookeeper WatchedEvent getPath

Introduction

In this page you can find the example usage for org.apache.zookeeper WatchedEvent getPath.

Prototype

public String getPath() 

Source Link

Usage

From source file:com.navercorp.nbasearc.confmaster.server.WatchEventHandler.java

License:Apache License

public void onChangedEventPg(PathUtil.WatchTarget wt, WatchedEvent event) throws MgmtZooKeeperException {
    if (LeaderState.isLeader()) {
        return;/*from   ww w. j a  v a2 s . c  o  m*/
    } else {
        zk.registerChangedEventWatcher(event.getPath());

        PartitionGroup pg = (PartitionGroup) container.get(event.getPath());
        if (null == pg) {
            // this znode already removed.
            return;
        }

        try {
            pg.setPersistentData(zk.getData(pg.getPath(), null));
        } catch (NoNodeException e) {
            throw new MgmtZooKeeperException(e);
        }
    }
}

From source file:com.navercorp.nbasearc.confmaster.server.WatchEventHandler.java

License:Apache License

public void onChildEventPgRoot(PathUtil.WatchTarget wt, WatchedEvent event)
        throws NoNodeException, MgmtZooKeeperException {
    if (LeaderState.isLeader()) {
        return;//from   w w  w  . j av a2s  .  c  o m
    } else {
        zk.registerChildEventWatcher(event.getPath());

        // Delete
        List<String> deleted = getDeletedChildren(event.getPath(), container.getPgList(wt.clusterName));
        for (String pgName : deleted) {
            container.delete(PathUtil.pgPath(pgName, wt.clusterName));
        }

        // Created
        List<String> created = getCreatedChildren(event.getPath(), container.getPgList(wt.clusterName));
        for (String pgName : created) {
            final String pgPath = PathUtil.pgPath(pgName, wt.clusterName);
            byte[] data = zk.getData(pgPath, null, true);
            PartitionGroup pg = new PartitionGroup(context, pgPath, pgName, wt.clusterName, data);
            zk.registerChildEventWatcher(pgPath);
            container.put(pg.getPath(), pg);
        }
    }
}

From source file:com.navercorp.nbasearc.confmaster.server.WatchEventHandler.java

License:Apache License

public void onChildEventPgs(PathUtil.WatchTarget wt, WatchedEvent event) throws MgmtZooKeeperException {
    zk.registerChildEventWatcher(event.getPath());

    PartitionGroupServer pgs = (PartitionGroupServer) container.get(event.getPath());

    if (!event.getPath().equals(pgs.getPath())) {
        Logger.error("PATH INCONSISTENCY");
        return;//from   w w w.jav  a  2s . c  om
    }

    if (pgs.getHeartbeat().equals(Constant.HB_MONITOR_YES)) {
        pgs.turnOnUrgentHeartbeat();
    }

    workflowExecutor.perform(PGS_STATE_DECISION, pgs);
}

From source file:com.navercorp.nbasearc.confmaster.server.WatchEventHandler.java

License:Apache License

public void onChangedEventPgs(PathUtil.WatchTarget wt, WatchedEvent event) throws MgmtZooKeeperException {
    zk.registerChangedEventWatcher(event.getPath());

    PartitionGroupServer pgs = (PartitionGroupServer) container.get(event.getPath());
    if (null == pgs) {
        // this znode already removed.
        return;/*from  ww  w  .  j  a v  a2  s.c o  m*/
    }

    if (LeaderState.isFollower()) {
        Stat stat = new Stat();
        try {
            byte[] d = zk.getData(pgs.getPath(), stat);
            pgs.setPersistentData(d);
            pgs.setZNodeVersion(stat.getVersion());
        } catch (NoNodeException e) {
            throw new MgmtZooKeeperException(e);
        }
    }

    try {
        pgs.propagateStateToHeartbeatSession();
        if (pgs.getHeartbeat().equals(Constant.HB_MONITOR_YES)) {
            pgs.turnOnUrgentHeartbeat();
        }
    } catch (Exception e) {
        Logger.error("Change pgs fail. {}", pgs, e);
    }
}

From source file:com.navercorp.nbasearc.confmaster.server.WatchEventHandler.java

License:Apache License

public void onChildEventPgsRoot(PathUtil.WatchTarget wt, WatchedEvent event) throws MgmtZooKeeperException {
    if (LeaderState.isLeader()) {
        return;/*from w  ww .  j  a  va  2s . com*/
    } else {
        zk.registerChildEventWatcher(event.getPath());

        // Delete
        List<String> deleted = getDeletedChildren(event.getPath(), container.getPgsList(wt.clusterName));
        for (String pgsName : deleted) {
            container.delete(PathUtil.pgsPath(pgsName, wt.clusterName));
            container.delete(PathUtil.rsPath(pgsName, wt.clusterName));
        }

        // Created
        List<String> created = getCreatedChildren(event.getPath(), container.getPgsList(wt.clusterName));
        for (String pgsName : created) {
            try {
                Stat stat = new Stat();
                String path = PathUtil.pgsPath(pgsName, wt.clusterName);
                byte[] d = context.getBean(ZooKeeperHolder.class).getData(path, stat, true);
                PartitionGroupServer pgs = new PartitionGroupServer(context, d, wt.clusterName, pgsName,
                        stat.getVersion());
                zk.registerChildEventWatcher(path);
                container.put(pgs.getPath(), pgs);

                String rsPath = PathUtil.rsPath(pgsName, wt.clusterName);
                d = zk.getData(rsPath, stat, true);
                RedisServer rs = new RedisServer(context, d, wt.clusterName, pgsName, pgs.getPgId(),
                        stat.getVersion());
                zk.registerChildEventWatcher(rsPath);
                container.put(rs.getPath(), rs);
            } catch (Exception e) {
                Logger.error("Load pgs fail. cluster:{}/pgs:{}", wt.clusterName, pgsName, e);
            }

        }
    }
}

From source file:com.navercorp.nbasearc.confmaster.server.WatchEventHandler.java

License:Apache License

public void onChildEventRs(PathUtil.WatchTarget wt, WatchedEvent event) throws MgmtZooKeeperException {
    zk.registerChildEventWatcher(event.getPath());

    RedisServer rs = (RedisServer) container.get(event.getPath());

    if (rs.getHeartbeat().equals(Constant.HB_MONITOR_YES)) {
        rs.turnOnUrgentHeartbeat();//from  w ww.j av a2s  . c  o  m
    }

    workflowExecutor.perform(COMMON_STATE_DECISION, rs);
}

From source file:com.navercorp.nbasearc.confmaster.server.WatchEventHandler.java

License:Apache License

public void onChangedEventRs(PathUtil.WatchTarget wt, WatchedEvent event) throws MgmtZooKeeperException {
    zk.registerChangedEventWatcher(event.getPath());

    RedisServer rs = (RedisServer) container.get(event.getPath());
    if (null == rs) {
        // this znode already removed.
        return;/*from   w  w  w . ja  va2s . c o  m*/
    }

    if (LeaderState.isFollower()) {
        Stat stat = new Stat();
        try {
            byte[] d = zk.getData(rs.getPath(), stat);
            rs.setPersistentData(d);
            rs.setZNodeVersion(stat.getVersion());
        } catch (NoNodeException e) {
            throw new MgmtZooKeeperException(e);
        }
    }

    try {
        rs.propagateStateToHeartbeatSession();
        if (rs.getHeartbeat().equals(Constant.HB_MONITOR_YES)) {
            rs.turnOnUrgentHeartbeat();
        }
    } catch (Exception e) {
        Logger.error("failed while change rs. {} {}", event.getPath(), event, e);
    }
}

From source file:com.navercorp.pinpoint.flink.cluster.FlinkServerRegister.java

License:Apache License

@SuppressWarnings("deprecation")
@Override//from  w  ww . ja va 2 s  . c om
public void process(WatchedEvent event) {
    logger.info("Handle Zookeeper Event({}) started.", event);

    KeeperState state = event.getState();
    EventType eventType = event.getType();
    String path = event.getPath();

    // when this happens, ephemeral node disappears
    // reconnects automatically, and process gets notified for all events
    boolean result = false;
    if (ZookeeperUtils.isDisconnectedEvent(event)) {
        result = handleDisconnected();
        if (state == KeeperState.Expired) {
            client.reconnectWhenSessionExpired();
        }
    } else if (state == KeeperState.SyncConnected || state == KeeperState.NoSyncConnected) {
        if (eventType == EventType.None) {
            result = handleConnected();
        } else if (eventType == EventType.NodeChildrenChanged) {
            logger.info("zookeeper Event occurs : NodeChildrenChanged event");
        } else if (eventType == EventType.NodeDeleted) {
            logger.info("zookeeper Event occurs : NodeDeleted");
        } else if (eventType == EventType.NodeDataChanged) {
            logger.info("zookeeper Event occurs : NodeDataChanged");
        }
    }

    if (result) {
        logger.info("Handle Zookeeper Event({}) completed.", event);
    } else {
        logger.info("Handle Zookeeper Event({}) failed.", event);
    }
}

From source file:com.navercorp.pinpoint.web.cluster.zookeeper.ZookeeperClusterManager.java

License:Apache License

@SuppressWarnings("deprecation")
@Override//from  w  w w. jav a2 s  .  c  o  m
public void process(WatchedEvent event) {
    synchronized (initializeLock) {
        // wait for client variable to be assigned.
    }

    logger.info("Zookeeper Event({}) occurred.", event);

    KeeperState state = event.getState();
    EventType eventType = event.getType();
    String path = event.getPath();

    // when this happens, ephemeral node disappears
    // reconnects automatically, and process gets notified for all events
    boolean result = false;
    if (ZookeeperUtils.isDisconnectedEvent(event)) {
        result = handleDisconnected();
        if (state == KeeperState.Expired) {
            client.reconnectWhenSessionExpired();
        }
    } else if (state == KeeperState.SyncConnected || state == KeeperState.NoSyncConnected) {
        if (eventType == EventType.None) {
            result = handleConnected();
        } else if (eventType == EventType.NodeChildrenChanged) {
            result = handleNodeChildrenChanged(path);
        } else if (eventType == EventType.NodeDeleted) {
            result = handleNodeDeleted(path);
        } else if (eventType == EventType.NodeDataChanged) {
            result = handleNodeDataChanged(path);
        }
    }

    if (result) {
        logger.info("Zookeeper Event({}) succeeded.", event);
    } else {
        logger.info("Zookeeper Event({}) failed.", event);
    }
}

From source file:com.navercorp.redis.cluster.gateway.NodeWatcher.java

License:Apache License

/**
 * @param event//  w  ww  .j  a  v  a 2  s  . co m
 * @see org.apache.zookeeper.Watcher#process(org.apache.zookeeper.WatchedEvent)
 */
public void process(WatchedEvent event) {
    log.debug("[NodeWatcher] Zookeeper watched");
    log.info("[NodeWatcher] Event {type=" + event.getType() + ", state=" + event.getState() + ", path="
            + event.getPath() + "}");

    if (event.getType() == Event.EventType.None) {
        switch (event.getState()) {
        case SyncConnected:
            log.debug("[NodeWatcher] SyncConnected");
            this.connLatcher.countDown();
            break;
        default:

        }
    } else if (event.getType() == Event.EventType.NodeChildrenChanged) {
        log.debug("[NodeWatcher] NodeChildrenChanged");
        reloadGatewaylist();
        reloadGatewayAffinity();
    } else if (event.getType() == Event.EventType.NodeDataChanged) {
        log.debug("[NodeWatcher] NodeDataChanged");
        reloadGatewayAffinity();
    } else if (event.getType() == Event.EventType.NodeDeleted) {
        log.debug("[NodeWatcher] NodeDeleted");
    } else if (event.getType() == Event.EventType.NodeCreated) {
        log.debug("[NodeWatcher] NodeCreated");
    }
}