Zookeeper的基本特性与命令行学习

本文详细介绍了Zookeeper作为分布式服务协调框架的作用,包括它的持久化节点与临时节点的区别,重点讲解了Watcher机制的工作流程,以及如何通过命令行进行操作。此外,还探讨了Zookeeper的ACL权限控制,阐述了权限的构成、分类及其在实际操作中的应用。
摘要由CSDN通过智能技术生成

Zookeeper的基本特性与命令行学习



一、zookeeper是什么?

ZooKeeper是一个分布式服务协调框架,可以用来维护分布式配置信息、服务注册中心、实现分布式锁等,是Hadoop、Hbase、kafka、dubbo等重要组件

二、zookeeper特性详解

1.zookeeper作用

- master选举
-  统一配置文件管理 
- 发布订阅;dubbo 发布者把数据存在节点上订阅者可获取数据 
- 提供分布式锁 

2.怎么判断是持久化节点还是临时节点:

 get  /节点名 查看ephemeralOwner如果是永久节点则其值为 0x0;

3.zookeeper常用命令

./zkServer.sh  start    ----启动服务
./zkCli.sh              -----连接客户端
 ls    /zookeeper       ----列出节点zookeeper节点的子节点及状态信息
 stat /zookeeper        ----节点zookeeper状态
 get  /zookeeper       ----获取指定节点zookeeper的内容
 create  /zookeeper   zkvalue    ----创建持久化节点
 create  -e  /zookeeper   zkvalue  ---- 创建临时节点
 create  -s  /zookeeper   zkvalue  ---- 创建顺序节点
      例如::create -s /node_1/node_1_1    234
      结果为: Created /node_1/node_1_10000000001  
 get  /zookeeper              --节点详情
 set  /zookeeper  zkvalue    当前dataVersion值         ----修改节点的值 并且dataVersion值递增
 delete /zookeeper 当前dataVersion数据版本号值    ----删除节点
 rmr /node_1   ---delete只能删除不包含子节点的节点,如果要删除的节点包含子节点,使用rmr命令
                         

4.watcher机制

Zookeeper允许客户端向服务端的某个Znode 注册一个 Watcher 监听,当服务端的一些指定事件触发了这个 Watcher,服务端会向指定客户端发送一个事件通知来实现分布式的通知功能,然后客户端根据 Watcher 通知状态和事件类型做出业务上的改变。

工作机制:
(1)客户端注册 watcher
(2)服务端处理 watcher
(3)客户端回调 watcher

wtcher是一次性的触发之后立即被销毁;父节点,子节点增删改都能触发其watcher


  • 为父节点创建事件:stat 或者 get /节点名 watch

  • 为子节点创建事件:

新增和删除事件:ls   /父节点名/子字节点名  watch 
修改事件:     get  /父节点名/子字节点名   watch  
 使用ls命令为子节点设置watcher,子节点被修改时,不触发事件。需要使用get

watch类型:

事件类型:
针对父节点:
        增   NodeCreated
        改   NodeDataChanged
        删   NodeDeleted
针对子字节:
     增/删   NodeChildrenChanged
        改   NodeDataChanged

4.ACL权限控制

zookeeper利用ACL策略控制节点的访问权限,如节点数据读写、节点创建、节点删除、读取子节点列表、设置节点权限等。


Acl构成:

[scheme :id :permissions]构成权限列表

scheme分类:
world :  对应只有一个id 即:anyone  任何人    world:anyone:【permissions】
auth  :  认证登录。auth:user:password:[permissions]   明文密码
digest: 密码加密digest:user:BASE64(SHA1(password)) :[permissions]
ip    :  指定ip访问     ip:192.168.30.1 : [permissions]
super : 拥有所有权限,代表超级管理员 修改zkServer.sh  并重启
permissions分类:
权限字符串缩写:CRDWA (默认)
 C:  create创建子节点
 R:  read  获取节点或者子字节
 D:  delete 删除子节点
 W:  write::设置节点
 A:admin设置权限
命令行实例:
setAcl  /imooc/ttt    world:anyone:cdrwa(具体的权限字符串 ) 
setAcl  /zookeeper/names/imooc  auth:imooc:imooc:cdrwa  //默认第一个设置的用户,之后在用其他未认证的用户也是可以的操作
setAcl  /zookeeper/names/test   digest:imooc:XwEDaL3J0JQGkRQzM0DpO6zMzZs=:cdra
setAcl  /zookeeper/names/ip  ip:192.168.30.1:cdrwa
配置zkServer.sh "-Dzookeeper.DigestAuthenticationProvider.superDigest=super:加密后的密码"  并重启./zkServer.sh  restart
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值