zookeeper 3.8.1安装和入门使用

1、zookeeper环境搭建(Windows单机版)

1.1、 前提

必须安装jdk 1.8 ,配置jdk环境变量,步骤略

1.2、安装zookeeper

地址:https://zookeeper.apache.org/

1.2.1、选择releases版本

1.2.2、下载安装包并解压

1.2.3、配置data位置 复制 zoo_sample.cfg文件改名为zoo.cfg,修改dataDir位置

1.3、使用

1.3.1、开启服务端

1.3.2、开启客户端

服务端启动成功显示

客服端启动成功显示

2、zookeeper使用

2.1、帮助命令: help

复制代码
help(查看所有zk命令)
​
ls  查看命令
 ls -R /quota_test    
    显示 
#   /quota_test
#   /quota_test/child_1
#   /quota_test/child_2
    /quota_test/child_3
 
 ls -s /quota_test
    显示
#   [child_1, child_2, child_3]
#   cZxid = 0x110000002d
#   ctime = Thu Mar 07 11:19:07 UTC 2019
#   mtime = Thu Mar 07 11:19:07 UTC 2019
#   pZxid = 0x1100000033
#   cversion = 3
#   dataVersion = 0
#   aclVersion = 0
#   ephemeralOwner = 0x0
#   dataLength = 0
#   numChildren = 3
  
  ls -w /brokers    为brokers节点添加监视器,当brokers添加或删除子节点时会提示
#   WATCHER::
​
#WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/app2

2.2、创建节点

复制代码
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
    [-s]        自动添加序号(自增)
    [-e]        表示为零时节点
    [-c]        创建容器节点
    [-t ttl]        创建ttl节点,可以指定超时时间,3.6.0之后版本出现
    path        节点路径名 根目录为/,每个/代表一层  最后一个/后的内容为当前创建的节点名,若节点名前几层的节点不存在时当前节点创建时会报错,不会自动创建
    [data]      节点数据 "data"   和path类似与  Key:value 
    [acl]       节点访问权限

2.3、节点类型

普通永久节点

复制代码
create /app1 "hello zk" 创建普通永久节点app1 value为 hello zk

带序号永久节点

复制代码
create -s /app2 "hello zk"创建带序号永久节点app1 value为 hello zk

普通临时节点

复制代码
create -e /app3 "hello zk"创建普通临时节点app3 value为 hello zk 临时节点当客户端关闭时会被删除

带序号临时节点

复制代码
create -e -s /app4 "hello zk"创建普通临时节点app4 value为 hello zk  临时节点当客户端关闭时会被删除

创建容器节点

复制代码
 create -c /container_node mydata 当容器结点的最后一个子节点被删除时容器节点就会被删除

创建ttl节点

复制代码
#注意 先在zoo.cfg加入extendedTypesEnabled=true配置,否则会报 KeeperErrorCode = Unimplemented for /ttl_node   错误
​
create -t 1000 /app1 "hello" 创建一个1000ms过时的节点app1 data为hello

创建acl节点

复制代码
详见 https://blog.csdn.net/yangshangwei/article/details/109759787

2.4、获取节点值

复制代码
get [-s] [-w] path 
	[-s] 查看节点详细信息
	[-w] 为path设置监听器,当data改变时提醒

get -s /app1  或者 stat /app1
#前者会多显示一条节点值
# ­­­­­­­­­­­节点的状态信息,也称为stat结构体­­­­­­­­­­­­­­­­­­­
# 创建该znode的事务的zxid(ZooKeeper Transaction ID)
# 事务ID是ZooKeeper为每次更新操作/事务操作分配一个全局唯一的id,表示zxid,值越小,表示越先执行
cZxid = 0x4454 # 0x0表示十六进制数0
ctime = Thu Jan 01 08:00:00 CST 1970  # 创建时间
mZxid = 0x4454 						  # 最后一次更新的zxid
mtime = Thu Jan 01 08:00:00 CST 1970  # 最后一次更新的时间
pZxid = 0x4454 						  # 最后更新的子节点的zxid
cversion = 5 						  # 子节点的变化号,表示子节点被修改的次数
dataVersion = 0 					  # 当前节点的变化号,0表示从未被修改过
aclVersion = 0  					  # 访问控制列表的变化号 access control list
# 如果临时节点,表示当前节点的拥有者的sessionId
ephemeralOwner = 0x0				  # 如果不是临时节点,则值为0
dataLength = 13 					  # 数据长度
numChildren = 1 					  # 子节点数据

get -w /app1  为app1添加监听器  当使用 set命令修改app1的值时zk监视器会提醒

2.5、修改节点值

复制代码
set /app1  "hello set" 

2.6、删除节点值

复制代码
delete path   当path存在子节点时无法删除
deleteall path 递归删除path及其子节点
相关推荐
斌味代码3 分钟前
SpringBoot 3 实战:虚拟线程、全局异常处理与 JWT 鉴权完整方案
java·spring boot·后端
电商API&Tina20 分钟前
跨境电商如何接入1688官方寻源通接口?附接入流程
java·数据库·python·sql·oracle·json·php
Mr_Xuhhh24 分钟前
深入理解Java Map与Set:从二叉搜索树到哈希表,全面解析搜索数据结构
java·数据结构·散列表
于先生吖31 分钟前
支持二开与商用,JAVA 漫剧付费观看系统完整源码
java·开发语言
曹牧34 分钟前
Java: 从oracle表中获取一组kv序列
java·开发语言·oracle
Lyyaoo.36 分钟前
【Java基础面经】Java 注解的底层原理
java·开发语言·python
妙蛙种子31136 分钟前
【Java设计模式 | 创建者模式】 抽象工厂模式
java·开发语言·后端·设计模式·抽象工厂模式
雄哥00740 分钟前
spring 升级记录
java·后端·spring·spring升级
卓怡学长40 分钟前
m320基于Java的网络音乐系统的设计与实现
java·数据库·spring·tomcat·maven
yaaakaaang41 分钟前
五、原型模式
java·原型模式