zoukankan      html  css  js  c++  java
  • Java 操作zookeeper

    1,windows 下的zookeeper 单机启动,双击就可以启动了,路径必须是英文路径,启动之后

    启动完成,如下图,默认端口2181

    2,windows 下的图形化工具,连接zookeeper的客户端

    双击打开:

    可以在客户端增添节点

    3,通过java 代码操作zookeeper

    package com.aiyuesheng.utils;
    
    import java.io.IOException;
    import java.util.concurrent.CountDownLatch;
    
    import org.apache.zookeeper.CreateMode;
    import org.apache.zookeeper.KeeperException;
    import org.apache.zookeeper.WatchedEvent;
    import org.apache.zookeeper.Watcher;
    import org.apache.zookeeper.Watcher.Event.EventType;
    import org.apache.zookeeper.Watcher.Event.KeeperState;
    import org.apache.zookeeper.ZooKeeper;
    import org.apache.zookeeper.ZooDefs.Ids;
    
    public class ZookeeperClient {
    
        // 连接地址
        private static final String ADDRES = "127.0.0.1:2181";
        // session 会话
        private static final int SESSION_OUTTIME = 2000;
        // 信号量,阻塞程序执行,用户等待zookeeper连接成功,发送成功信号,
        private static final CountDownLatch countDownLatch = new CountDownLatch(1);
    
        public static void main(String[] args) throws IOException, InterruptedException, KeeperException {
            ZooKeeper zk = new ZooKeeper(ADDRES, SESSION_OUTTIME, new Watcher() {
    
                public void process(WatchedEvent event) {
                    // 获取事件状态
                    KeeperState keeperState = event.getState();
                    // 获取事件类型
                    EventType eventType = event.getType();
                    if (KeeperState.SyncConnected == keeperState) {
                        if (EventType.None == eventType) {
                            countDownLatch.countDown();
                            System.out.println("zk 启动连接...");
                        }
    
                    }
                }
            });
            // 进行阻塞
            countDownLatch.await();
            System.out.println(countDownLatch.getCount()+"pppppppppp");
            String result = zk.create("/company-a", "SalesDepartment".getBytes(), Ids.OPEN_ACL_UNSAFE,
                    CreateMode.PERSISTENT);
            System.out.println(result);
            zk.close();
        }
    
    }
  • 相关阅读:
    Java——字符串操作
    算法——Java实现队列
    算法——Java实现栈
    算法——线性表之链式存储结构
    算法——线性表之顺序存储结构
    Java——单双引号的区别
    Hystrix源码解析
    Eureka源码探索(一)-客户端服务端的启动和负载均衡
    dubbo源码研究(一)
    dubbo-springboot入门级demo
  • 原文地址:https://www.cnblogs.com/pickKnow/p/11315905.html
Copyright © 2011-2022 走看看