1.配置Zookeeper的环境变量
为了简化我们每次操作Zookeeper而不用进入到Zookeeper的安装目录,我们可以将Zookeeper的安装信息配置到系统的环境变量中。
修改配置信息
[root@biao bin]# vim /etc/profile
#Zookeeper配置
export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
编辑之后要让他生效
[root@biao bin]# source /etc/profile
在其他节点也进行一样的配置
这时候我们就可以在节点的任意位置操作Zookeeper了
2.Zookeeper客户端连接
[root@biao ~]# zkCli.sh
连接成功
zkCli.sh默认连接的是当前节点的Zookeeper节点,如果我们要连接其他节点执行如下命令即可
2181是端口,可选的
[root@biao ~]# zkCli.sh -timeout 5000 -server biao2:2181
3. Zookeeper的数据操作
3.1 Zookeeper的数据结构
- 层次化的目录结构,命名符合常规文件系统规范
- 每个节点在Zookeeper中叫做znode,并且有一个唯一的路径标识
- 节点znode可以包含数据和子节点(但是EPHEMERAL类型的节点不能有子节点)
- 客户端应用可以在节点设置监听器
3.2 节点类型
3.2.1 znode的类型
- 短暂性:断开连接时,自己删除
- 持久性:断开连接时,自己不删除
3.2.2 znode有四种形式的目录节点
节点类型 | 描述 |
---|---|
PERSISTENT | 持久节点(默认是持久节点) |
PERSISTENT_SEQUENTIAL | 持久有序节点 |
EPHEMERAL | 短暂节点 |
EPHEMERAL | 短暂有序节点 |
创建znode时设置顺序标识,znode名称后会附加一个值,顺序号是一个单调递增的计数器,有父节点维护。
在分布式系统中,顺序号可以被用于为所有的事件进行全局排序,这样客户端可以通过顺序号推断事件的顺序
4.常用命令
Zookeeper作为Dubbo的注册中心用来保存我们各个服务的节点信息,显然Zookeeper是可以实现数据的存储操作的。
命令 | 作用 |
---|---|
ls | 用来查看某个节点下的子节点信息 |
ls -s | 增强的命令,查看节点下的子节点及当前节点的属性信息 |
create | 创建节点信息 |
create -s | 创建节点是若有重复会在节点名称后加上数字 |
get | 用来查看节点的数据 |
get-s | 查看节点的属性信息 |
delete | 只能删除没有子节点的节点 |
deleteall | 删除非空节点 |
set | 用来修改节点的内容 |
get -w | 监听数据的改变 |
ls -w | 监听子节点的改变 |
ls
ls -s
create
create -s
get
get -s
delete
deleteall
set
4.1 事件监听
监听某个事件的数据内容变化,通过get命令带-w参数即可。
然后在其他节点上修改abc节点的数据,就会触发监听事件
注意监听一次节点只会触发一次,如果要实现多次监听,那么可以在触发事件的处理函数在此追加对节点的监听操作。
监听子节点的改变
监听节点下面的子节点的改变,用 ls -w
就会触发监听