1 maven依赖
<zookeeper.version>3.4.11</zookeeper.version> <apache.curator.version>4.1.0</apache.curator.version>
<!-- zookeeper --> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>${zookeeper.version}</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <!-- apache.curator zookeeper --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>${apache.curator.version}</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>${apache.curator.version}</version> <exclusions> <exclusion> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> </exclusion> <exclusion> <artifactId>zookeeper</artifactId> <groupId>org.apache.zookeeper</groupId> </exclusion> </exclusions> </dependency>
2 工具类
import cn.sun.curator.listener.AbstractNodeCacheListener; import cn.sun.curator.listener.SessionConnectionStateListener; import cn.sun.util.PropertiesUtil; import org.apache.curator.RetryPolicy; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.framework.api.ACLBackgroundPathAndBytesable; import org.apache.curator.framework.api.BackgroundPathAndBytesable; import org.apache.curator.framework.api.BackgroundPathable; import org.apache.curator.framework.recipes.cache.*; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooDefs; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.List; import java.util.Properties; /** * zk工具类 */ public class ZkUtil { private static final Logger log = LoggerFactory.getLogger(ZkUtil.class); public static String NAMESPACE = "chy"; public static Properties pu = PropertiesUtil.loadProperties("classpath:zkconfig.properties"); public static CuratorFramework client; public static String env = "DEV"; public static synchronized void initialize() { String zkhost = null; int sessionTimeout = 60000; int connTimeout = 3000; try { log.info("read classpath:zkconfig.properties, env: " + env); if (pu != null) { zkhost = pu.getProperty(env + "_ZK_SERVER"); sessionTimeout = Integer.valueOf(pu.getProperty("sessionTimeout", "60000")).intValue(); connTimeout = Integer.valueOf(pu.getProperty("connTimeout", "3000")).intValue(); client = createClient(zkhost, sessionTimeout, connTimeout, NAMESPACE); } } catch (Exception e) { log.error("init zkUtil error!", e); } } public static CuratorFramework createClient(String zkhost, int sessionTimeout, int connTimeout, String nameSpace) { CuratorFramework client = null; Re