List of usage examples for org.apache.zookeeper WatchedEvent getState
public KeeperState getState()
From source file:com.liveramp.hank.zookeeper.ZooKeeperConnection.java
License:Apache License
/** * Listens for notifications from the ZooKeeper service telling that we have * been connected, disconnected, or our session has expired. * <p/>//from w w w .jav a 2s. c o m * Upon connection, we first make a call to {@link #onConnect()}, and then we * release all threads that are blocking on {@link #waitForConnection()}. * <p/> * Upon disconnection, we call {@link #onDisconnect()}, and then we reset the * latch to block any threads that call {@link #waitForConnection()}. * <p/> * On session expiry, we call {@link #onSessionExpire()}, reset the latch, and * then manually try to reconnect to the ZooKeeper service. * * @param event */ @Override public void process(WatchedEvent event) { if (event.getType() == Event.EventType.None) { KeeperState state = event.getState(); LOG.info("Getting event: " + state); for (Coordinator.StateChangeListener listener : listeners) { listener.process(state.name()); } switch (state) { case SyncConnected: onConnect(); connectedSignal.countDown(); break; case Disconnected: onDisconnect(); connectedSignal = new CountDownLatch(1); break; case Expired: onSessionExpire(); connectedSignal = new CountDownLatch(1); try { LOG.info("Attempting ZooKeeper reconnect"); connect(maxConnectAttempts); } catch (IOException e) { LOG.error("Failed to connect to the ZooKeeper service", e); throw new RuntimeException("Couldn't connect to the ZooKeeper service", e); } break; } // Return because we are done processing this event; do not let subclasses // process. return; } }
From source file:com.martin.zkedit.utils.ZKConnHelper.java
License:Open Source License
public ZooKeeper connect(String hosts, int sessionTimeout) throws IOException, InterruptedException { final CountDownLatch connectedSignal = new CountDownLatch(1); ZooKeeper zk = new ZooKeeper(hosts, sessionTimeout, new Watcher() { @Override/* w w w . j ava 2s. co m*/ public void process(WatchedEvent event) { if (event.getState() == Watcher.Event.KeeperState.SyncConnected) { connectedSignal.countDown(); } } }); connectedSignal.await(); return zk; }
From source file:com.navercorp.client.Client.java
License:Apache License
public Client(String connectionString, int timeoutms) throws IOException, InterruptedException { final CountDownLatch sync = new CountDownLatch(1); zk = new ZooKeeper(connectionString, timeoutms, new Watcher() { public void process(WatchedEvent event) { if (event.getType() == Event.EventType.None && event.getState() == Event.KeeperState.SyncConnected) { sync.countDown();//from www . j a v a 2s.c o m } } }); if (sync.await(timeoutms, TimeUnit.MILLISECONDS) == false) { zk.close(); throw new IOException("Connection to zookeeper timed out. connectionString: " + connectionString); } }
From source file:com.navercorp.nbasearc.confmaster.server.WatchEventHandler.java
License:Apache License
@Override public void process(WatchedEvent event) { if (event.getType() == Event.EventType.None) { Logger.info(event.toString()); if (event.getState() == Watcher.Event.KeeperState.SyncConnected) { Logger.info("Connection to zookeeper is established. {}", event); Logger.flush(INFO);// w w w . j a v a 2s. co m connWait.countDown(); } else if (event.getState() == Watcher.Event.KeeperState.Expired) { Logger.info("ZooKeeper session expired, shutdown... {}", event); Logger.flush(DEBUG); System.exit(-1); } else { Logger.info("Connection to ZooKeeper state changed. {}", event); Logger.flush(INFO); } } else if (event.getType() == Event.EventType.NodeChildrenChanged || event.getType() == Event.EventType.NodeDataChanged) { processChildrenOrDataChangedEvent(event); } }
From source file:com.navercorp.pinpoint.flink.cluster.FlinkServerRegister.java
License:Apache License
@SuppressWarnings("deprecation") @Override//w ww . j a v a2s .co m 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 ww 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//from ww w . j a va 2s . c o 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"); } }
From source file:com.navercorp.redis.cluster.ZookeeperConTest.java
License:Apache License
/** * @param event/*from w w w . j a v a2 s.co m*/ * @see org.apache.zookeeper.Watcher#process(org.apache.zookeeper.WatchedEvent) */ public void process(WatchedEvent event) { 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("SyncConnected"); this.connLatcher.countDown(); break; default: } } }
From source file:com.nearinfinity.blur.manager.indexserver.BlurServerShutDown.java
License:Apache License
public void register(final BlurShutdown shutdown, ZooKeeper zooKeeper) { this.shutdown = shutdown; this.zooKeeper = zooKeeper; zooKeeper.register(new Watcher() { @Override/*from w w w .j av a 2s .c o m*/ public void process(WatchedEvent event) { KeeperState state = event.getState(); if (state == KeeperState.Expired) { LOG.fatal("Zookeeper session has [" + state + "] server process shutting down."); shutdown.shutdown(); } } }); }
From source file:com.nesscomputing.service.discovery.job.ZookeeperProcessingTask.java
License:Apache License
@Override public void process(WatchedEvent event) { LOG.debug("Received '%s' event", event.getState()); switch (event.getState()) { case AuthFailed: LOG.warn("Got an auth request from zookeeper. Server config is not compatible to this client!"); break;/*ww w. java2s .c om*/ case SyncConnected: LOG.trace("Session connected"); connected = true; switch (event.getType()) { case None: break; default: LOG.trace("Zookeeper state changed: %s", event.getType()); // Forces running of the work loop. generation.incrementAndGet(); break; } break; case Disconnected: LOG.trace("Session disconnected, waiting for reconnect"); connected = false; break; case Expired: LOG.trace("Session expired, closing zookeeper."); connected = false; closeZookeeper(); default: // Huh? LOG.debug("Failed to process unknown state %s", event.getState()); break; } }