@Override public void stateChanged(CuratorFramework client, ConnectionState state) { if (state == ConnectionState.CONNECTED) { logger.info("ZookeeperClient[{}] connected.", address); } else if (state == ConnectionState.LOST) { logger.warn("ZookeeperClient[{}] connection lost.", address); } else if (state == ConnectionState.RECONNECTED) { logger.info("ZookeeperClient[{}] reconnected.", address); // 临时节点重连时需重新注册 ZookeeperClient.this.connStateChanged(); for (PathChildrenCache watcher : nodeChangeWatcher.values()) { try { watcher.clearAndRefresh(); } catch (Exception e) { logger.error("ZookeeperClient[{}] watcher refresh failed.", address); } } } } });