节点类型
1.持久:客服端和服务器断开连接后,创建的节点不删除
2.短暂:客服端 和服务器断开连接后,创建的节点自己删除
开启集群
(分别在三台机器上开启命令)
./bin/zkServer.sh start //启动
./bin/zkServer.sh status //查看状态
./bin/zkServer.sh stop //停止
编写 kafka 群起脚本
#!/bin/bash
case $1 in
"start"){
for i in master slave1 slave2
do
echo "************$i************"
ssh $i "/usr/local/src/zookeeper-3.4.14/bin/zkServer.sh start"
done
};;
"stop"){
for i in master slave1 slave2
do
echo "************$i************"
ssh $i "/usr/local/src/zookeeper-3.4.14/bin/zkServer.sh stop"
done
};;
esac
客户端命令
./bin/zkCli.sh
ls /
ls2 /
create /elaiza "girl"
create /elaiza/like "me"
create -e /elaiza/name "elaiza_idk"
create -s /elaiza/like "him"
set /elaiza/like 'me too'
get /elaiza/like
get /elaiza watch -> 注册监听一次有且有效一次
ls /elaiza watch
stat /elazia
delete /elaiza
rmr /elaiza
zookeeper监听器原理
1.首先有个main()线程
2.在main()线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connet),一个负责监听(listener)
3.通过connect线程将注册的监听事件发个Zookeeper
4.通过Zookeeper的注册监听器列表中将注册的监听事件添加到列表
5.Zookeeper监听到有数据或路径的变化,就会将这个消息发送给listener线程 --- 监听节点数据的变化和节点路径的变化(ls watch 和 get watch)
6.listener线程内部调用了process()方法