小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
ZooKeeper安装以及基本功能体验
1. 安装
下载地址: zookeeper.apache.org/releases.ht…
选择bin下载,避免本地编译,如选择最新的3.6.2版
下载完毕之后,解压放在目标位置
tar -xvf apache-zookeeper-3.6.2-bin.tar.gz
复制代码
启动之前请确保jdk8以上的环境
启动命令
# 前台使用默认配置启动
bin/zkServer.sh start-foreground
复制代码
2. 初体验
借助 bin/zkCli.sh
连接查看
# 资源列表
ls path # 列出路径下的资源
# 创建节点
# -e 表示临时, 不带表示持久节点
# -s 表示顺序节点
# path 路径
# data 携带的数据信息
create [-e] [-s] path data
# 查看节点数据
get path
# 设置数据
set path data [version]
# 删除节点
delete path [version]
复制代码
实例演示
[zk: localhost:2181(CONNECTED) 28] create /hello '一灰'
Created /hello
[zk: localhost:2181(CONNECTED) 29] get /hello
一灰
[zk: localhost:2181(CONNECTED) 30] create /hello/01 '00'
Created /hello/01
[zk: localhost:2181(CONNECTED) 31] create /hello/02 '02'
Created /hello/02
[zk: localhost:2181(CONNECTED) 32] ls /hello
[01, 02]
[zk: localhost:2181(CONNECTED) 33] get /hello/01
00
[zk: localhost:2181(CONNECTED) 34] delete /hello
Node not empty: /hello
[zk: localhost:2181(CONNECTED) 35] delete /hello/01
[zk: localhost:2181(CONNECTED) 36] ls /hello
[02]
[zk: localhost:2181(CONNECTED) 39] create -e -s /hello/02 '有序'
Created /hello/020000000002
[zk: localhost:2181(CONNECTED) 40] get /hello/02
02
[zk: localhost:2181(CONNECTED) 41] get /hello/020000000002
有序
[zk: localhost:2181(CONNECTED) 42] create -e -s /hello/03 '有序'
Created /hello/030000000003
[zk: localhost:2181(CONNECTED) 43] ls /hello
[02, 020000000002, 030000000003]
复制代码
3. 基本概念
四种节点:
- 持久化节点
PERSISTENT
: 节点创建之后,一直存在,除非手动删除 - 持久化顺序节点
PERSISTENT_SEQUENTIAL
: 持久化节点,与上面的区别在于它的顺序性,zk中,每个父节点会为第一级子节点维护时序,记录子节点创建的先后顺序,这里的有序可以理解为在节点名上添加一个有序的数字后缀,作为新的节点名 - 临时节点
EPHEMERAL
: 与持久节点的区别在于临时节点的生命周期与client绑定,当client终端,这个节点会被销毁 - 临时有序节点
EPHEMERAL_SEQUENTIAL
: 临时节点,有序,zk的分布式锁一般是采用它来实现
II. 其他
1. 一灰灰Blog: liuyueyi.github.io/hexblog
一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
2. 声明
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840