一、简介
二、下载解压:
#wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
#tar -zxvf zookeeper-3.4.12.tar.gz
三、切换到 zookeeper-3.4.3/bin目录下
1、conf目录下提供了配置的样例zoo_sample.cfg,要将zk运行起来,需要将其名称修改为zoo.cfg。
启动 ./zkServer.sh start
2、进入bin目录,启动zookeeper:sh zkServer.sh start
验证是否启动:jps命令查看活动的java进程
查看状态:sh zkServer.sh status
停止服务:sh zkServer.sh stop
3、连接-直接执行zkCli.cmd或者zkCli.sh命令默认以主机号 127.0.0.1,端口号 2181 来连接zk,如果要连接不同机器上的zk,可以使用 -server 参数,例如:
./zkCli.sh -server127.0.0.1:2181
四、Zookeeper客户端启动及操作
Zookeeper存储数据的结构是一棵树,Zookeeper数据结构的特征:
1、有一个根节点 /,对于Zookeeper的操作都要基于根节点
2、每个节点都叫做Znode节点,都可以创建自己的子节点,都可以存储数据
3、整个Znode树会存储在内存中,提高查询速度。为了防止数据丢失,同时也会把Znode树落到磁盘上,磁盘路径即配置文件zoo.cfg里dataDir指定的目录
4、Znode的路径是全局唯一的
5、创建节点时,需指定初始化数据,否则创建报错
6、Zookeeper是事务的概念,针对每个事务(创建,更新或删除节点等),Zookeeper都会分配一个递增的Zxid(事务id)。其中有cZxid(创建节点的事务id),mZxid(修改节点的事务id)
1、节点操作
查询节点 ls / ls /zookeeper
创建节点:create /node01 hello
创建了节点 node01,并初始化数据为 “hello”
查看节点:get /node01
可以看出,当执行命令 create /node01 hello时,这就是一个写的事务,会分配一个事务id,事务id是一个自增的id。
修改节点数据:set /node01 hellodfr
删除节点:delete /node01 单个删除,存在子节点则删除失败 rmr /node01 递归删除
2、节点类型
create /park01 "dateStr" 普通持久节点
create -e /park01 "dateStr" 普通临时节点
create -s /park01 "dateStr" 顺序持久节点
create -e -s /park01 "dateStr" 临时顺序节点
临时节点
客户端连接zookeeper服务并创建临时节点后,若客户端掉线,则临时节点会消失。
该特性可以用来检测集群中,有哪些机器挂掉 顺序节点
创建顺序节点后,会在节点名称后带上一个自增的顺序id
如创建节点 create -s /park01 ddff,真正创建的节点名称为 park010000000009
五、通过代码操作zookeeper
参考 :https://blog.****.net/qinshi965273101/article/details/82937890