Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
今天记录一下在Windows上安装并启动Zookeeper。
一、先到官网下载最新的稳定版:
https://zookeeper.apache.org/releases.html
这里要注意的是 红色框框里第一行是编译好的二进制,我们直接下载这个,第二行是源码,源码里我下载后发现是没有包的,会报一个找不到包的错,我们直接下载解压,这个是在3.5之后更改的,3.5之前源码也可以直接启动,但是3.5之后就不行了。
报错:找不到或无法加载主类org.apache.zookeeper.server.quorum.QuorumPeerMain
二、解压
解压后获取的就是上图所示的目录结构,现在就可以直接启动了,打开bin目录,双击zkServer.cmd即可。
启动后会出现黑屏终端,并打印出日志信息:
出现绑定到端口说明成功了。
三、配置
如果想自定义配置一些东西,可以conf目录下,复制zoo_sample.cfg文件,重命名为zoo.cfg。
在zooe.cfg中即可修改或者添加配置:
Linux其实和Windows差不多,不过是用命令来操作,最后启动的文件不是cmd,而是zkServer.sh start。
$wgethttps://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.3/zookeeper-3.6.3.tar.gz$tar-zxvfzookeeper-3.6.3.tar.gz$cdzookeeper-3.6.3$cdconf/$cpzoo_sample.cfgzoo.cfg$cd .. $cdbin/$shzkServer.shstart
四、Java连接Zookeeper
packagecom.xing.studyboot.component.zookeeper; importjava.util.concurrent.CountDownLatch; importorg.apache.zookeeper.WatchedEvent; importorg.apache.zookeeper.Watcher; importorg.apache.zookeeper.Watcher.Event; importorg.apache.zookeeper.ZooKeeper; publicclassTestZookeeper { publicstaticvoidmain(String[] args) { try { finalCountDownLatchcountDownLatch=newCountDownLatch(1); "resource") (ZooKeeperzooKeeper=newZooKeeper("172.23.8.168:2181",4000, newWatcher() { publicvoidprocess(WatchedEventevent) { if(Event.KeeperState.SyncConnected==event.getState()){ //如果收到了服务端的响应事件,连接成功countDownLatch.countDown(); } } }); countDownLatch.await(); //CONNECTEDSystem.out.println(zooKeeper.getState()); }catch (Exceptione) { e.printStackTrace(); } } }
运行main方法:
控制台输出 connected 显示连接成功!
总结:
安装和Java使用原生API连接Zookeeper。
END