zookeeper使用方法

zookeeper安装

下载与配置

》http://mirrors.hust.edu.cn/apache/zookeeper 下载一个版本

》解压

》找到目录conf 下创建 zoo.cfg 文件,默认就是加载这个文件,然后修改些东西

 

#zoo.cfg 的内容

#   心跳检查的时间 2

tickTime=2000

# 初始化时 连接到服务器端的间隔次数,总时间10*2=20

initLimit=10

# ZK Leader follower 之间通讯的次数,总时间5*2=10

syncLimit=5

# 存储内存中数据库快照的位置,如果不设置参数,更新事务日志将被存储到默认位置。

dataDir=C:\\test\\tmp\\zookeeper

# 错误日志的存放位置

dataLogDir=C:\\test\\log\\zookeeper

 

# ZK 服务器端的监听端口

clientPort=2181

 

 

启动

》进入到bin目录,启动,执行zkServer.cmd 就启动成功了

3》客户端添加节点代码

public static final String ROOT = "/root"; //根节点

  public static void main( String[] args ) throws Exception {

    //1.创建一个与服务器的连接

    ZooKeeper zooKeeper = new ZooKeeper("localhost:2181", 3000, new Watcher() {

        //监控所有被触发的事件

        @Override

        public void process(WatchedEvent event) {

            System.out.println("状态State:" + event.getState());

            System.out.println("类型Type:" + event.getType());

            System.out.println("Wrapper:" +event.getWrapper());

            System.out.println("路径Path:" + event.getPath());

        }

    });

  

    //2.创建节点

    //2.1 创建根节点,不控制权限,这里需要用持久化节点,不然下面的节点创建容易出错

    //zooKeeper.create("/root","/root".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

  

    //2.2 子节点,持久化顺序编号目录节点

   // zooKeeper.create("/root/node1","/root/node1".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);

   // zooKeeper.create("/root/node2","/root/node2".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);

  

    //2.3 子节点 临时目录节点 客户端与zookeeper断开连接后,该节点被删除

    //zooKeeper.create("/root/node3", "/root/node3".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

  

    //2.4 子节点 session 过期自动删除,也会加数字的后缀

    //zooKeeper.create("/root/node4", "/root/node4".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);

    //3.查看节点

    List<String> ktvs = zooKeeper.getChildren(ROOT, true);

    System.out.println("所有子节点:" + Arrays.toString(ktvs.toArray()));

  

    //4.删除子节点

    for (String nodeId : ktvs){

        zooKeeper.delete(ROOT + "/" + nodeId,-1);

    }

  

    //删除根节点

    zooKeeper.delete(ROOT,-1);

    zooKeeper.close();

}

依赖:

<dependency>

    <groupId>org.apache.zookeeper</groupId>

    <artifactId>zookeeper</artifactId>

    <version>3.4.6</version>

  </dependency>

  

  <dependency>

    <groupId>log4j</groupId>

    <artifactId>log4j</artifactId>

    <version>${log4j.version}</version>

  </dependency>

  <dependency>

    <groupId>org.slf4j</groupId>

    <artifactId>slf4j-api</artifactId>

    <version>${slf4j.version}</version>

  </dependency>

  <dependency>

    <groupId>org.slf4j</groupId>

    <artifactId>slf4j-log4j12</artifactId>

    <version>${slf4j.version}</version>

  </dependency>
<log4j.version>1.2.17</log4j.version>

  <slf4j.version>1.7.12</slf4j.version>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值