Golang 操作zookeeper

本文详细介绍了如何通过go-zookeeper库在Go语言中进行Zookeeper的基本操作,包括连接、节点管理、事件监听等,适合初学者和开发者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

zookeeper 是开放源码的分布式应用程序协调服务
常用来做服务发现
使用 go-zookeeper/zk 类库
github地址:https://github.com/go-zookeeper/zk

安装
go get github.com/go-zookeeper/zk
启动zookeeper

这里使用docker启动zookeeper

docker run --name zk -p 2181:2181 --restart always -d zookeeper
zookeeper常用方法
连接
// 传入zookeeper地址map,超时时间
// 返回
// connect: 连接
// enents: 事件chan
connect, events, err := zk.Connect([]string{"127.0.0.1"}, 5*time.Second)
判断节点是否存在
//传入节点路径
//返回
//exists:节点是否存在(bool)
//stat: 节点信息描述(struct)
exists, stat, err := connect.Exists(path)
新增节点
//传入创建的节点路径,节点数据,节点类型,权限
// 返回
// name:节点名
name, err := connect.Create(path, []byte(data), 0, zk.WorldACL(zk.PermAll))
获取节点信息
//传入节点路径
//返回
//get:节点数据([]byte)
//stat: 节点描述信息(struct)
get, stat, err := connect.Get(path)
删除节点信息
//传入要删除的节点路径,节点版本号(从节点描述信息stat中获取)
err := connect.Delete(path, version)
获取子节点
// 传入上级路径
// 返回
// children: 上级路径下的子节点路径(不包含上级path部分)
// stat: 上级节点描述信息(struct)
children, stat, err := connect.Children(path)
监听子节点变化
//传入主节点路径
//返回
//w:主节点下的子节点组成的(string[])
//stat:主节点信息描述(struct)
//事件chan
w, stat, event, err := z.connect.ChildrenW(path)
修改节点
//传入要修改的节点路径,修改数据,版本号(从节点描述信息stat中获取)
//返回
//stat:修改后的节点描述信息(struct)
stat,err := connect.Set(path, data, version)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值