zookeeper的使用及基本概念

一、zookeeper的安装

1.下载

下载链接:http://zookeeper.apache.org/releases.html
进入后选择版本下载:
在这里插入图片描述
其中alpha与beta均为测试版本,目前最新的稳定版本为3.4.13。

2.安装与配置

tar -zxf zookeeper-3.4.13.tar.gz 安装目录

解压后进入安装目录的/zookeeper-3.4.13/conf目录下,将zoo_template.cfg复制一份重命名为zoo.cfg

cp zoo_template.cfg zoo.cfg

修改zoo.cfg中dataDir=/data/zookeeper并保存,在本地磁盘新建/data/zookeeper目录,该目录为zookeeper的数据存储目录。
这里默认的是单机模式,zookeeper支持两种启动模式:单机、集群
集群配置需要在三台以上设备上同时部署zookeeper,开发或者自己学习时,我们很难弄到多台设备,这时可以使用一个伪集群的配置方式来实现,具体操作如下:

  1. copy三份zookeeper到三个不同目录,/zookeeper1,/zookeeper2,/zookeeper3
  2. 创建/data/zookeeper1,/data/zookeeper2,/data/zookeeper3三个目录
  3. 修改三个zookeeper下的zoo.cfg,分别将dataDir指向第二步创建好的三个目录
  4. 在zoo.cfg中加入如下配置,其中ip改为自己服务器ip即可:
    server.1= 192.168.1.148:2888:3888
    server.2= 192.168.1.148:4888:5888
    server.3= 192.168.1.148:6888:7888
    
  5. 分别在/data/zookeeper1,/data/zookeeper2,/data/zookeeper3下创建myid文件,内容分别为1、2、3;内容与第四步中server.后面跟的数字一致
  6. 分别启动三个zookeeper

3.启动

进入目录/zookeeper-3.4.13/bin下执行脚本zkServer.sh

sh zkServer.sh start

出现下图所示即表示启动成功
在这里插入图片描述
也可以通过命令查看日志:

tail -f zookeeper.out

二、zookeeper的简单使用

1.连接zookeeper

启动成功后,通过/zookeeper-3.4.13/bin下zkCli.sh可以直接连接zookeeper

sh zkCli.sh

在这里插入图片描述

2.增删改查

zookeeper的增删改查命令分别为:

  • 新增节点:create [-s] [-e] path data acl (其中-s表示有序节点,-e表示临时节点,acl为权限类型,这三个参数都是非必要参数,即通过 create path data 就可以新增一个节点)
  • 删除节点:delete path [version](其中version指改节点的版本信息,不指定时表示不验证版本信息,直接删除)
  • 修改节点:set path data [version] (version与delete中含义一样)
  • 查询节点信息:get path [watch] (watch指定一个监听器,当节点变化时会做出通知,非必要参数)
  • 另外 ls /节点 可以列出节点的字节点
    下面以节点test为例,分别使用增删改查命令操作该节点:
    在这里插入图片描述通过ls命令可以看出根节点下面已经有两个节点(这个是我使用过dubbo,所有产生了一个dubbo节点,默认只有一个zookeeper)。
    在这里插入图片描述新增节点可以通过ls显示出来,
    在这里插入图片描述通过get命令可以查询到test下对应的值为create时设置的0(其他内容暂时不解释)
    在这里插入图片描述
    通过set命令将/test节点对应的值修改为11.
    在这里插入图片描述
    delete成功将/test节点删除。

三、zookeeper的基本概念

1.zookeeper文件系统

通过上面的操作,我们可以发现zookeeper提供了一个文件系统,我们可以随意添加删除节点,可以为节点赋值并可以修改这个值,可以为节点添加自节点。其目录结构为树形结构,如下:
在这里插入图片描述

1.1 节点类型

在上面提到过,新增节点时可以选择两个可选参数[-s] [-e],其中-s表示有序节点,-e表示临时节点(临时节点的生命周期为从新建节点到本次客户端连接断开)。通过命令组合,我们可以猜得到,zookeeper的节点有四种类型:

  • 持久化节点(PERSISTENT)
  • 持久化有序节点(PERSISTENT_SEQUENTIAL)
  • 临时节点(EPHEMERAL)
  • 临时有序节点(EPHEMERAL_SEQUENTIAL)

1.2 有序节点

有序节点创建时,只需加入参数[-s]即可,创建后的节点会自动加一个自增的数字后缀,效果如下:
在这里插入图片描述

1.3 临时节点

临时节点的创建只需加上[-e]参数即可,临时节点会在客户端端开链接后删除,测试效果:

  • 创建临时节点
    在这里插入图片描述
  • 端开客户端
    在这里插入图片描述
  • 重新进入, ls查看
    在这里插入图片描述
    可以看到,之前创建的持久化有序节点依然存在,但是刚才创建的临时节点已经消失。

2. watcher

zookeeper提供了watcher机制,客户端对一个节点注册watcher,当节点发生变化时,zookeeper服务器会通知客户端相应的变化。

  • watcher注册时机:在查询节点时可以为该节点注册一个watcher,指令包括ls,get,stat
  • watcher触发时机:当注册了watcher的节点发生变化时,即出现set,delete,create时,zookeeper会通知客户端该变化

3.zookeeper可以做什么

1.命名服务 2.配置管理 3.集群管理 4.分布式锁 5.队列管理

手写代码模拟zookeeper分布式锁

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值