zk二之java语言操作zk

    xiaoxiao2022-07-02  107

    1、pom.xml文件导入zkClient的jar包

    <!--引入zkclient客户端--> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> </dependency>

    2、java语言创建节点

    package com.test.demo.zktest001; import org.apache.zookeeper.*; import java.util.concurrent.CountDownLatch; /** * @创建人 yfc * @创建时间 2019\5\22 * @描述 java语言操作zk */ public class Zk001 { //zk连接地址 private static final String CONNECTION="127.0.0.1:2181"; //zk会话超时时间 private static final int SESSION_OUTTIME=2000; //信号量、阻塞程序执行,用户等待zookeeper连接成功,发送成功信号 private static final CountDownLatch countDownLatch=new CountDownLatch(1); public static void main(String[] args) throws Exception{ ZooKeeper zk=new ZooKeeper(CONNECTION, SESSION_OUTTIME, new Watcher() { //事件通知、节点发生、新增、修改、删除,都会被监听到 @Override public void process(WatchedEvent event) { //1、获取事件状态 Event.KeeperState state=event.getState(); //2.判断连接状态 if(Event.KeeperState.SyncConnected==state){ //3.获取事件类型 Event.EventType type=event.getType(); //表示事件为连接状态 if(Event.EventType.None==type){ System.out.println("***********zk开始连接************"); //信号量减1,只有当信号量的值为0时,才能不产生,阻塞 countDownLatch.countDown(); } } } }); //进行阻塞 countDownLatch.await(); //创建持久节点、节点开放权限 String result=zk.create("/demo/test1","test001".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); System.out.println("新增节点信息:"+result); zk.close(); } }

    3、运行结果

    最新回复(0)