下载zk
wget https://archive.apache.org/dist/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gz
安装jdk
tar xf jdk-12.0.2_linux-x64_bin.tar.gz -C /usr/local/
vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
ln -s /usr/local/jdk-12.0.2 /usr/local/jdk
部署zk
mkdir /data/zk -pv
tar xf apache-zookeeper-3.5.5-bin.tar.gz -C /data/zk/
cp /data/zk/apache-zookeeper-3.5.5-bin/bin/../conf/zoo_sample.cfg /data/zk/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
创建数据目录 mkdir /data/zk/data
[root@master conf]# vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zk/data 数据目录
clientPort=2181
#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1
配置zk的环境变量
[root@master conf]# vim /etc/profile.d/zk.sh
export ZOOKEEPER_HOME=/data/zk/apache-zookeeper-3.5.5-bin
export ZOOBINDIR=/data/zk/apache-zookeeper-3.5.5-bin/bin
export PATH=$ZOOKEEPER_HOME/bin:$PATH
[root@master conf]# exec bash
启动
[root@master conf]# zkServer.sh start
客户端登录
[root@master conf]# zkCli.sh
[zk: localhost:2181(CONNECTED) 0] help 帮助
ZooKeeper -server host:port cmd args
addauth scheme auth
close
config [-c] [-w] [-s]
connect host:port
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
delete [-v version] path
deleteall path
delquota [-n|-b] path
get [-s] [-w] path
getAcl [-s] path
history
listquota path
ls [-s] [-w] [-R] path
ls2 path [watch]
printwatches on|off
quit
reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,…]*]] | [-add serverId=host:port1:port2;port3[,…]]* [-remove serverId[,…]*]
redo cmdno
removewatches path [-c|-d|-a] [-l]
rmr path
set [-s] [-v version] path data
setAcl [-s] [-v version] [-R] path acl
setquota -n|-b val path
stat [-w] path
sync path
Command not found: Command not found help
[zk: localhost:2181(CONNECTED) 1] create /app4 创建node
Created /app4
[zk: localhost:2181(CONNECTED) 2] create /app4/p-1
Created /app4/p-1
[zk: localhost:2181(CONNECTED) 3] create /app4/p-2
Created /app4/p-2
[zk: localhost:2181(CONNECTED) 4] create /app4/p-3
Created /app4/p-3
[zk: localhost:2181(CONNECTED) 5] ls -R / 查看node
/
/app1
/app2
/app4
/zookeeper
/app1/p_1
/app1/p_2
/app1/p_3
/app4/p-1
/app4/p-2
/app4/p-3
/zookeeper/config
/zookeeper/quota
客户端创建分布式锁
[zk: localhost:2181(CONNECTED) 6] create -e /log
Created /log
[root@master data]# zkCli.sh
[zk: localhost:2181(CONNECTED) 2] create -e /log
Node already exists: /log
[zk: localhost:2181(CONNECTED) 3] stat -w /log 监控这个锁
cZxid = 0x14
ctime = Wed Sep 11 16:31:46 CST 2019
mZxid = 0x14
mtime = Wed Sep 11 16:31:46 CST 2019
pZxid = 0x14
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x100014034170002
dataLength = 0
numChildren = 0
退出第一个客户端;释放锁
[zk: localhost:2181(CONNECTED) 7] quit
WATCHER::
WatchedEvent state:Closed type:None path:null
2019-09-11 16:35:02,053 [myid:] - INFO [main:ZooKeeper@1422] - Session: 0x100014034170002 closed
2019-09-11 16:35:02,053 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@524] - EventThread shut down for session: 0x100014034170002
释放锁后
[zk: localhost:2181(CONNECTED) 4]
WATCHER::
WatchedEvent state:SyncConnected type:NodeDeleted path:/log
[zk: localhost:2181(CONNECTED) 4] create -e /log 第二的
Created /log
手机扫一扫
移动阅读更方便
你可能感兴趣的文章