一、下载zookeeper的包
地址:https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.8.0/ 需要下载该目录下的两个文件
二、部署安装
1.安装jdk
2.解压下载的文件
3.需要将apache-zookeeper-3.8.0-bin目录下的lib文件夹拷贝到apache-zookeeper-3.8.0下
4.复制 zoo_sample.cfg为zoo.cfg,并修改配置文件
#时间配置的基本单位(毫秒),2秒initLimit=10 tickTime=2000 #允许从节点初始化连接到主节点的最大时长,它表示tickTime的倍数,默认20秒 initLimit=10 #允许从节点与主节点数据同步的最大时长,它表示tickTime的倍数,默认10秒 syncLimit=5 #持久化机制:事务持久化跟快照持久化 #数据存储目录和日志保存目录,如果没有指明dataLogDir,则日志也保存在这个文件中 dataDir=/tmp/zookeeper dataLogDir=/tmp/zookeeper #对客户端提供的端口 clientPort=2181 #设置admin的服务端口,默认会占用8080 admin.serverPort=8888 #单个客户端与zookeeper最大并发连接数
maxClientCnxns=60 #保存数据的快照数量,之外的将会被清除 autopurge.anapRetainCount=3 #自动触发清除任务时间间隔,小时为单位,默认为0,表示不自动清除 autopurge.purgeInterval=1
5.zookeeper的基本命令
6.启动服务
./zkServer.sh start ../conf/zoo.cfg ,启动服务时候如果保存,可以用./zkServer.sh start-foreground查看输出错误信息去排查错误
7.查看zookeeper启动的状态
8.zk的客户端连接工具
./zkCli.sh
zookeeper内部的数据模型:zk的数据是保存在节点上的,节点就是znode,多个znode组成一个树的目录结构
9.zk的客户端的命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | ZooKeeper -server host:port -client-configuration properties- file cmd args addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE 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 [-b batch size] delquota [-n|-b|-N|-B] path get [-s] [-w] path getAcl [-s] path getAllChildrenNumber path getEphemerals path history listquota path ls [-s] [-w] [-R] path 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] set [-s] [- v version] path data setAcl [-s] [- v version] [-R] path acl setquota -n|-b|-N|-B val path stat [-w] path sync path version whoami |
(1)创建节点
create /test1
create /test1/sub1
(2)创建数据,获取数据
create /test2 abc
get /test2
(3)创建持久节点与持久序号节点
create /test3 #创建持久节点
create -s /test3 #创建持久序号节点
(4)创建临时节点,回话结束后,自动被删除,zk可以实现服务的注册与发现。
zk客户端 -> 创建连接请求 ->zk服务器
zk客户端 <- 返回session_id <-zk服务器
zk客户端 -> 持续回话,续约session_id的时间 ->zk服务器
zk客户端(回话断开) zk服务器(删除没有续约的session-id的对应的临时节点)
create -e /test5
(5)查询节点信息
cZxid 创建节点的事务ID
ctime 节点创建的时间
mZxid 修改节点的事务ID
mtime 节点最近修改的时间
pZxid 添加和删除节点的事务ID
cversion
dataVersion
aclVersion 此节点的权限版本
ephemeralOwner 如果当前节点是临时节点,该值是当前所有者的session_id,如果不是临时节点该值为0
dataLength = 0
numChildren = 0
(6)创建容器节点
create -c /mycontainer #创建的容器节点,在子节点被删除之后,60s后该容器节点会被删除
create /mycontainer/a
create /mycontainer/b
delete /mycontainer/a
delete /mycontainer/b
10.zk的数据持久化
- 事务日志
- 数据快照
存放在配置文件zoo.cfg中dataDir的值的路径下
恢复:先通过快照文件数据到内存中,再用日志文件中的数据作增量恢复,这样的恢复速度会更快
迁移和恢复参考:https://blog.51cto.com/tianshili/2072339?ivk_sa=1024320u
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!