ZooKeeper 快速入门教程

 

1、 配置安装

这里介绍的是windows下单机的安装教程,集群的安装方式大同小异,大家可以自行百度一下。

下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
我下载的是3.5.9 版本, windows 下最好下载编译过的源码版本,即bin.tar.gz,

我下载的是 apache-zookeeper-3.5.9-bin.tar.gz

解压后有conf 和bin等目录,conf路径下将zoo_sample.cfg 另存为zoo.cfg,并修改zoo.cfg中的三个参数:

admin.serverPort=8030
dataDir=D:\\apache-zookeeper-3.5.9-bin\\data
dataLogDir=D:\\apache-zookeeper-3.5.9-bin\\log
clientPort=2183

其中,admin.serverPort是zooKeeper 服务器启动占用的端口,一般默认为8080,为避免发生端口被占用的情况,可根据需要自行配置,

dataDir是存放运行数据的目录,dataLogDir是存放日志目录,记得路径中要使用//来转义为单斜杠,clientPort是客户端连zookeeper使用的

端口,默认为2181,但是我本机发现2181端口已被占用,因此自行修改为了2183, 各位可根据自己实际情况配置。

然后, 在控制台bin目录下中输入zkServer.cmd即可启动zookeeper:

D:\apache-zookeeper-3.5.9-bin\bin>zkServer.cmd

zkServer.sh stop 即可停止zookeeper服务。

常用命令如下:

启动ZK服务bin/zkServer.sh start
查看ZK服务状态bin/zkServer.sh status
停止ZK服务bin/zkServer.sh stop
重启ZK服务bin/zkServer.sh restart
连接服务器zkCli.sh -server 127.0.0.1:2181


如遇到问题,可以在logs目录下查看日志信息。

客户端连接Zookeeper:

windows 下, 直接运行 zkCli.cmd即可,Linux 下执行 ./zkCli.sh -timeout 0 -r -server ip:port

客户端下常见命令:

ls:列出某一节点下的子节点信息
ls2:列出当前节点的子节点,同时列出节点状态
stat:查看节点的状态信息

    在zookeeper中,每一次对节点的写操作都认为是一次事务,每一个事务,系统都会分配一个唯一的事务ID。
      czxid:节点被创建的事务ID
      ctime: 创建时间
      mzxid: 最后一次被更新的事务ID
      mtime: 修改时间
      pzxid:子节点列表最后一次被更新的事务ID
      cversion:子节点的版本号
      dataversion:数据版本号
      aclversion:权限版本号
      ephemeralOwner:用于临时节点,代表临时节点的事务ID,如果为持久节点则为0
      dataLength:节点存储的数据的长度
      numChildren:当前节点的子节点个数

get:获取当前节点存储的数据内容
  如:get /zk
create:创建节点
  -s:顺序节点
  -e:临时节点
  如:create /zk "myData"

set:修改节点数据,可携带版本号
  如:set /zk "myData"

delete:删除节点,只能删除没有子节点的节点
  如:delete /zk

rmr:递归删除节点(含子节点)
  如:rmr /zk

setquota:设置配额

  给节点限制值,比如限制子节点个数、节点数据的长度(当创建节点超出配额时,zookeeper不会抛出异常,会在zookeeper.out记录警告信息)
  -n:限制子节点个数
  -b:限制值的长度

listquota:查看配额,以及节点的配额状态
delquota:删除配额
close:关闭当前连接

quit:关闭客户端
history:查看历史执行指令
redo:重复执行指令

 

 

2、基本原理

简要地说,Zookeeper 基于观察者模式,观察各个服务器的状态,如果某一台服务器挂掉了,客户端可以切换到其他服务器请求访问,可以将zookeeper想象为监控器,

监控器什么都不做,但是记录了所有事情发生的记过。

对于服务器而言,服务器定时将自己的信息注册(可以理解为写入)到zookeeper集群,客户端定时的读取zookeeper集群上的注册信息,如果有服务器下线,客户端能够实时感知,

从这个角度上来说,zookeeper好像是“一本记账薄”,即 文件系统+通知机制 。 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九城风雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值