ZooKeeper节点操作命令
掌握节点CRUD操作是使用ZooKeeper的基本技能。
节点数据读写操作
创建节点:
Bash
# 创建持久节点
create /app/config "database_url"
# 创建临时节点
create -e /services/instance "192.168.1.100:8080"
# 创建顺序节点
create -s /queue/task- "task_data"
create -e -s /locks/lock- "owner_id"
创建命令格式:
Bash
create [-s] [-e] path data [acl]
-s: 顺序节点
-e: 临时节点
path: 节点路径(必须以/开头)
data: 节点数据
acl: 访问权限(可选)
读取节点数据:
Bash
# 基本读取
get /app/config
# 输出: database_url
# 读取并显示状态
get -s /app/config
# 输出数据和状态信息
dataVersion = 1
czxid = 0x100
...
修改节点数据:
Bash
# 直接修改
set /app/config "new_database_url"
# 指定版本号修改(乐观锁)
set /app/config "updated_url" 1
# 版本号必须匹配当前版本
删除节点:
Bash
# 删除节点(无子节点)
delete /app/config
# 指定版本号删除
delete /app/config 2
# 递归删除(包含子节点)
deleteall /app
操作总结:
| 命令 | 作用 |
|---|---|
| create | 创建节点 |
| get | 读取数据 |
| set | 修改数据 |
| delete | 删除节点 |
| deleteall | 递归删除 |
注意:delete只能删除无子节点的节点,有子节点需用deleteall。
节点子列表查询
查看子节点:
Bash
# 查看子节点列表
ls /app
# 输出: [config, services]
# 查看子节点和状态
ls2 /app
# 输出子节点列表和父节点状态
递归查询:
Bash
# 递归列出所有子节点
ls -R /app
# 输出:
/app
/app/config
/app/config/db
/app/services
路径操作技巧:
| 命令 | 说明 |
|---|---|
| ls / | 查看根节点 |
| ls -R / | 递归查看全部节点 |
| ls2 path | 查看子节点+状态 |
查询示例:
Bash
# 服务发现场景
ls /services/order
# 输出: [instance-0001, instance-0002]
# 获取具体实例地址
get /services/order/instance-0001
# 输出: 192.168.1.100:8080
检查节点存在:
text
# 查看节点状态(存在则返回状态)
stat /app/config
# 不存在则报错
stat /app/notexist
# 输出: Node does not exist
命令对比:
| 命令 | 输出内容 |
|---|---|
| ls | 仅子节点名称 |
| ls2 | 子节点+父节点状态 |
| get | 节点数据 |
| get -s | 数据+状态 |
| stat | 仅状态信息 |
提示:ls2等同于ls+stat的组合。
要点总结
- create支持-s顺序、-e临时节点
- get -s显示数据加状态信息
- set可指定版本号实现乐观锁
- delete删除无子节点,deleteall递归删除
- ls查看子节点列表,ls -R递归查询
- stat检查节点是否存在
📝 发现内容有误?点击此处直接编辑