Zookeeper学习和使用——Zookeeper的基本概念与安装使用

Zookeeper学习和使用——Zookeeper的基本概念与安装使用

Scroll Down

Zookeeper的基本概念与安装使用

1.什么是Zookeeper?

分布式应用程序协调服务,主要用来协调服务的,数据结构是类似目录类型的,一层一层key-value类型
image.png
安装:

解压:tar -zxvf apache-zookeeper-3.6.0-bin.tar.gz
进入conf目录下配置文件拷贝:cp zoo_sample.cfg zoo.cfg
进入bin目录启动:  ./zkServer.sh start
使用客户端进行连接,在bin目录下: ./zkCli.sh

注意使用bin的安装包进行使用,不要使用源码包进行安装使用
版本告知:(在3.6版本的客户端api发送改变)
3.49版本api:
image.png
3.60版本api:
image.png
新增功能:

config:查看集群配置

image.png
![image.png](https://www.xupeng.life/upload/2020/3/image-
6cd0a5d2c9c84480b6aba1f9eee29b71.png)

create -c 以容器化方式管理节点

image.png

create -t ttl path data 创建计时节点

image.png

deleteall path

image.png
更多参考:https://zookeeper.apache.org/doc/r3.6.0/zookeeperCLI.html

2.zookeeper的节点

1.常见的指令

crate 数据节点
设置值 set 数据节点 值  版本号
ls  /----->根节点  ls /节点名称 ------>查看子节点
ls2 查看节点的状态的信息(3.6的zookeeper没有这个命令了,就用stat)
get  取得当前节点的数据和节点信息
create -s|e /节点名称 值
set /节点 名称 
		不加版本号 一直叠加
		加版本号
delete /节点 
		不加版本号 删除节点
		加版本号 乐观锁

查看当前zookeeper状态,在bin目录下:sh zkServer.sh status

image.png
注意

1.删除节点是一层一层的删除 不能直接从最外层删除(新版有deleteall)
2.在新版(3.6.0)的zookeeper中版本号的添加方式已经改变

2.节点的信息(stat path)

cZxid :创建节点的id
ctime : 节点的创建时间
mZxid :修改节点的id
mtime :修改节点的时间
pZxid :子节点的id
cversion : 子节点的版本
dataVersion : 当前节点数据的版本
aclVersion :权限的版本
ephemeralOwner :判断是否是临时节点
dataLength : 数据的长度
numChildren :子节点的数量

image.png
当前节点状态
image.png
老的方式带版本号添加(不起作用)
image.png
新的添加方式(set path 数据 -v 版本号)
image.png

1.节点特点

1.节点不可以重复
2.节点可以有序
3.节点可以临时
4.临时节点不能创建子节点

有序节点:

create -s path data

image.png
临时节点:(会话结束会将临时节点删除)

create -e path data

3.zookeeper的配置文件

# The number of milliseconds of each tick
# zookeeper的最小时间单位,2s
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
# 初始化的最大时间,10*2 s
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
# 心跳检测的时间 5*2 s
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
# 数据位置与日志位置 每次操作都要记录日志,最好将日志存放在高速硬盘中,提高读写
dataDir=C:/zookeeper/apache-zookeeper-3.5.5/dataDir
dataLogDir=C:/zookeeper/apache-zookeeper-3.5.5/log
# the port at which the clients will connect
# 客户端口
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
#集群可以在后面配置,在data目录下创建 myid 文件,然后在该文件中写上d对应myid 即可
#server.1=IP:端口:端口
#server.2=IP:端口:端口
#server.3=IP:端口:端口

4.zookeeper的基本原理

zookeeper做分布式应用程序的协调服务,主要是通过watcher和事件回调的,即:
image.png