zookeeper与客户端curator

本文介绍了Zookeeper在分布式服务中的应用,并详细讲解了Zookeeper的客户端,包括命令行客户端、原生API、ZkClient和Curator。重点阐述了Curator这个强大的Zookeeper客户端框架,它封装了高级特性,如选举、分布式锁、分布式计数器等,并提供了Fluent编程风格。

zookeeper

zookeeper被广泛用于分布式服务中,如集群,kafka等。但基本的api却很简单。通过客户端调用简单的zookeeper的api实现数据更新、节点检测、权限控制、异步操作、事件监听等,最终实现分布式需要。

这里简单介绍一下客户端api。

首先,启动zookeeper

zkServer.sh start

开放2181端口,供外部调用

firewall-cmd --zone=public --add-port=2181/tcp --permanent

重启防火墙

systemctl restart firewalld.service

重载配置文件让它生效

firewall-cmd --reload

这样就可以根据IP和端口访问zookeeper服务器了。

启动客户端,就可以连接到服务器了

zkCli.sh -server 127.0.0.1:2181

zookeeper的数据结构其实就是一棵树,每个数据节点都是一个 ZNode。znode一共4种类型:持久的,临时的,持久有序的,临时有序的。
提供的操作也就是操作这棵树。输入 h 后回车,看下zkCli.sh提供的命令

使用客户端可以创建会话、创建节点、删除节点、获取子节点、获取节点内容等。

命令行客户端

 

命令行客户端一般用于调试、运维,实际服务不要用它。

执行 ls / 发现,/路径下已经有一个节点 /zookeeper 了

 

创建节点

create -e /master "hello"

这里 -e 是标明创建临时节点。还有-s,标明创建顺序节点(会在在节点名称后自动加上一串数字,每次创建时这串数字自增)
/master 为节点路径,"hello" 为节点的数据

注意,zookeeper根节点是 / 。因此所有节点路径都要带上 /

查看子节点列表

ls2 /master

获取节点

get /master

获取节点状态

stat /master

这里说下节点的一些属性:

属性

含义

cZxid

节点被创建时的事务id

ctime

当前节点的创建时间

mZxid

节点最后一次修被改时的事务id

mtime

节点数据的修改时间

pZxid

当前节点的子节点列表最后一次被修改时的事务id

cversion

子节点的版本号

dataVersion

节点数据的版本号

aclVersion

节点访问权限的版本号

ephemeralOwner

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值