zookeeper windows的安装

1.安装和配置

   a.官网下载:http://mirrors.cnnic.cn/apache/zookeeper/

   b.在conf目录下修改zoo_sample.cfg的配置文件,重命名为zoo.cfg

   其内容如下:

   # The number of milliseconds of each tick  心跳间隔 毫秒每次

   tickTime=2000

   # The number of ticks that the initial

   # synchronization phase can take  初始化时,连接到服务器的间隔次数,总时间10*2=20秒

   initLimit=10

   # The number of ticks that can pass between

   # sending a request and getting anacknowledgementZK Leader 和follower 之间通讯的次数,总时间5*2=10

   syncLimit=5

   # the directory where the snapshot isstored.  //镜像数据位置

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

   dataDir=D:\\data\\zookeeper

   #错误日志位置

   dataLogDir=D:\\logs\\zookeeper

   # the port at which the clients willconnect  客户端连接的端口---服务器端的监听端口

   clientPort=2181

注:如果启动有报错提示cfg文件有错误,可以用zoo_sample.cfg内内容替代也是可以的


进入到bin目录,并且启动zkServer.cmd,这个脚本中会启动一个Java进程

D:\machine\zookeeper-3.3.6>cd bin

D:\machine\zookeeper-3.3.6\bin>

D:\machine\zookeeper-3.3.6\bin >zkServer.cmd

启动后jps可以看到QuorumPeerMain的进程

D:\machine\zookeeper-3.3.6\bin >jps


启动客户端运行查看一下

D:\machine\zookeeper-3.3.6\bin>zkCli.cmd-server 127.0.0.1:2181


2.集群

在 一台机器上通过伪集群运行时可以修改 zkServer.cmd 文件在里面加入

set ZOOCFG=..\conf\zoo1.cfg  这行,另存为  zkServer-1.cmd



如果有多个可以以此类推



 




 

 

还需要 在对应的

/tmp/zookeeper/1,

/tmp/zookeeper/2,

/tmp/zookeeper/3

 建立一个文本文件命名为myid,内容就为对应的zoo.cfg里server.后数字

  

在dataDir 指定目录下创建myid 的文件,内容对应1 2 3 即可。这个的数字是唯一的,在1-255 之间,用来表示自身的id

启动3个zkServer-1.cmd,zkServer-2.cmd,zkServer-3.cmd 就OK了,如果要多服务器配置,只需要要将 3份分开放到不同服务器就OK

依次启动的时刻有错误信息,因为你启动server1 的时候 2 和 3 没找到,但是后面都启动了 就没问题了。


3.JAVA 操作zookeeper :

   3.1  导入依赖:     

Java代码   收藏代码
  1. <dependency>  
  2.            <groupId>org.apache.zookeeper</groupId>  
  3.            <artifactId>zookeeper</artifactId>  
  4.            <version>3.4.6</version>  
  5.        </dependency>  

 

   3.2 JAVA 实现:

Java代码   收藏代码
  1. // 根节点  
  2. public static final String ROOT = "/root-ktv";  
  3.   
  4. public static void main(String[] args) throws Exception {  
  5.     // 创建一个与服务器的连接  
  6.     ZooKeeper zk = new ZooKeeper("localhost:2181"30000new Watcher() {  
  7.         // 监控所有被触发的事件  
  8.         public void process(WatchedEvent event) {  
  9.             System.out.println("状态:" + event.getState()+":"+event.getType()+":"+event.getWrapper()+":"+event.getPath());  
  10.         }  
  11.     });  
  12.     // 创建一个总的目录ktv,并不控制权限,这里需要用持久化节点,不然下面的节点创建容易出错  
  13.     zk.create(ROOT, "root-ktv".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);  
  14.   
  15.     // 然后杭州开一个KTV ,       PERSISTENT_SEQUENTIAL 类型会自动加上 0000000000 自增的后缀  
  16.     zk.create(ROOT+"/杭州KTV""杭州KTV".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);  
  17.   
  18.     // 也可以在北京开一个,       EPHEMERAL session 过期了就会自动删除  
  19.     zk.create(ROOT+"/北京KTV""北京KTV".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);  
  20.   
  21.     // 同理,我可以在北京开多个,EPHEMERAL_SEQUENTIAL  session 过期自动删除,也会加数字的后缀  
  22.     zk.create(ROOT+"/北京KTV-分店""北京KTV-分店".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);  
  23.   
  24.     // 我们也可以 来看看 一共监视了多少家的ktv  
  25.     List<String> ktvs = zk.getChildren(ROOT, true);  
  26.     System.out.println(Arrays.toString(ktvs.toArray()));  
  27.     for(String node : ktvs){  
  28.         // 删除节点  
  29.         zk.delete(ROOT+"/"+node,-1);  
  30.     }  
  31.     // 根目录得最后删除的  
  32.     zk.delete(ROOT, -1);  
  33.     zk.close();  
  34. }  

 

    zookeeper 的结构图和其他的一些功能,可参考:                                                                                         http://www.blogjava.net/shenh062326/archive/2011/10/29/zookeeper_yuling.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值