zookeeper笔记

配置文件

在conf目录下有一个zoo_sample.cfg文件,这是个样例,将它复制一份->zoo.cfg,将zoo.cfg作为配置文件。

  • dataDir:文件存放位置,必须配置
  • dataLogDir:日志文件存放位置

基本数据模型

树形结构
每个节点称为znode,可以有子节点,也可以有数据
节点分为临时节点和永久节点,临时节点会在客户端断开以后消失
每个zk节点都有各自的版本号,可以通过命令显示节点信息
当节点数据发生变化,该节点版本号会增加(乐观锁)
删除/修改过时节点时,版本号不匹配会报错
每个zk节点存储的数据不宜过大,几k即可
节点可以设置权限,通过权限可以限制用户访问

运行

在bin目录下有一些启动文件(linux-sh和windows-cmd)

服务端的使用:

./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}

客户端的使用:

启动:

./zkCli.sh

常用命令

常用的命令都可以使用help命令查看

stat path [watch]:查看节点状态

set path data [version]:version用于乐观锁的实现,如果version与当前版本相同才执行set

ls path [watch]:查看节点

delquota [-n|-b] path

ls2 path [watch]

setAcl path acl:设置节点权限

setquota -n|-b val path

history 

redo cmdno

printwatches on|off

delete path [version]

sync path

listquota path

rmr path

get path [watch]:获取节点数据

create [-s] [-e] path data acl:-s顺序节点,-e临时节点

addauth scheme auth

quit 

getAcl path:获取权限信息

close

watch

使用watch的命令可以给节点设置一个watch,当在该节点某个事件发生时会触发watch

acl

ACL的格式由schema-id-acl三段组成。

  • schema:

    • world:默认方式,相当于全部都能访问
    • auth:代表已经认证通过的用户
    • digest:即用户名:密码这种方式认证,这也是业务系统中最常用的。用 username:password 字符串来产生一个MD5串,然后该串被用来作为ACL ID。认证是通过明文发送username:password 来进行的,当用在ACL时,表达式为username:base64 ,base64是password的SHA1摘要的编码。
    • ip:使用客户端的主机IP作为ACL ID 。这个ACL表达式的格式为addr/bits ,此时addr中的有效位与客户端addr中的有效位进行比对。
  • id:
    授权对象ID是指,权限赋予的用户或者一个实体

  • permission:授予什么权限,

    • CREATE c 可以创建子节点
    • DELETE d 可以删除子节点(仅下一级节点)
    • READ r 可以读取节点数据及显示子节点列表
    • WRITE w 可以设置节点数据
    • ADMIN a 可以设置节点访问控制列表权限
posted @ 2020-07-05 08:38  tianqibucuo  阅读(107)  评论(0编辑  收藏  举报