1、官网下载ZooKeeper,解压
2、将D:\Program Files (x86)\zookeeper-3.4.13\bin配置进环境变量
3、在D:\Program Files (x86)\zookeeper-3.4.13下新建data、和logs目录
4、拷贝zoo_sample.cfg为zoo1.cfg、zoo2.cfg、zoo2.cfg、zoo_ob.cfg(观察者模式)
tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:\\Program Files (x86)\\zookeeper-3.4.13\\data\\data_1
dataLogDir=D:\\Program Files (x86)\\zookeeper-3.4.13\\logs\\log_1
clientPort=2181
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
server.4=localhost:2890:3890:observer
tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:\\Program Files (x86)\\zookeeper-3.4.13\\data\\data_2
dataLogDir=D:\\Program Files (x86)\\zookeeper-3.4.13\\logs\\log_2
clientPort=2182
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
server.4=localhost:2890:3890:observer
tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:\\Program Files (x86)\\zookeeper-3.4.13\\data\\data_3
dataLogDir=D:\\Program Files (x86)\\zookeeper-3.4.13\\logs\\log_3
clientPort=2183
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
server.4=localhost:2890:3890:observer
tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:\\Program Files (x86)\\zookeeper-3.4.13\\data\\data_ob
dataLogDir=D:\\Program Files (x86)\\zookeeper-3.4.13\\logs\\log_ob
clientPort=2184
peerType=observer
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
server.4=localhost:2890:3890:observer
5、拷贝bin目录下的zkServer.cmd为zkServer_1.cmd、zkServer_2.cmd、zkServer_3.cmd、zkServer_ob.cmd(windows只能通过此方式启动,linux的启动方式是 ./zkServer start /User/.xxx/conf/zoo1.cfg)
在这段下面(set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain)加上
set ZOOCFG=..\conf\zoo1.cfg
6、直接双击运行zkServer_1.cmd文件(因为ZooKeeper是有过半策略的,所以只启动一台Server是启动不起来的,所以还要启动zkServer_2.cmd,最好是启动奇数个Server。ZooKeeper内部是有选举机制的,只有一个Leader,若干个Follower)
7、启动客户端连接
zkCli -server localhost:2181
8、查看ZooKeeper Server的状态(linux是./zkServer status /User/.xxx/conf/zoo1.cfg)
windows无法通过如上的方式查看谁是Leader谁是Follower,只能通过如下命令(需要用到 telnet或是netcat这里以netcat为例。下载netcat for windows,解压后 在windows 环境变量中path中添加 nc.exe所在的目录)
echo stat|nc 127.0.0.1 2181
附录:
nc命令获取zookeeper信息
查看哪个节点被选择作为follower或者leader echo stat|nc 127.0.0.1 2181
测试是否启动了该Server,若回复imok表示已经启动。 echo ruok|nc 127.0.0.1 2181
列出未经处理的会话和临时节点。 echo dump| nc 127.0.0.1 2181
关掉server echo kill | nc 127.0.0.1 2181
输出相关服务配置的详细信息。 echo conf | nc 127.0.0.1 2181
列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。 echo cons | nc 127.0.0.1 2181
输出关于服务环境的详细信息(区别于 conf 命令)。 echo envi |nc 127.0.0.1 2181
列出未经处理的请求。 echo reqs | nc 127.0.0.1 2181
列出服务器 watch 的详细信息。 echo wchs | nc 127.0.0.1 2181
通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。 echo wchc | nc 127.0.0.1 2181
通过路径列出服务器 watch 的详细信息。它输出一个与 session 相关的路径。 echo wchp | nc 127.0.0.1 2181