本文为博主原创,未经允许不得转载:

目录:

  1. znode 节点特性 

  2. zookeeper 的四种节点类型及适用场景分析

  3. zookeeper 客户端常用操作命令

  4. znode 数据增删改查

  5. 节点属性查看

  6. 节点的监听

  7. acl权限设置

1. znode 节点特性  

  zookeeper 中节点叫znode存储结构上跟文件系统类似,以树级结构进行存储。不同之外在于znode没有目录的概念,不能执行类似cd之类的命令。

  znode结点属性如下:

    1 path:唯一路径

    2 childNode:子节点

    3 stat:状态属性

    4 type:节点类型

2. zookeeper 的四种节点类型及适用场景分析:

类型

描述

命令

适用场景

PERSISTENT

持久节点

create /test

PERSISTENT_SEQUENTIAL

持久顺序节点

create -s /test

适合用于分布式锁、分布式选举等场景

EPHEMERAL

临时节点(不可在拥有子节点)

create -e /temp

适用于心跳,服务发现等场景

EPHEMERAL_SEQUENTIAL

临时顺序节点(不可在拥有子节点)

create -e -s /temp/seq

 

3. zookeeper 客户端常用操作命令:

#创建节点
create [-s] [-e] [-c] [-t ttl] path [data] [acl] #删除节点,(不能存在子节点)
deleteall path #查看节点数据 -s 包含节点状态 -w 添加监听
get [-s] [-w] path #查看执行的历史记录
history  #设置值
set [-s] [-v version] path data #为节点设置ACL权限
setAcl [-s] [-v version] [-R] path acl #查看节点状态 -w 添加监听
stat [-w] path

  创建一个临时顺序节点,并查看:

  临时节点在会话关闭的时候即会删除。   

4. znode 数据增删改查:

# 列出子节点
ls /
#创建节点
create /test "test is good man"
# 查看节点
get /test
# 创建子节点
create /test/sex "man"
# 设置节点值
set /test/sex "man"
# 删除节点
delete /test/sex
# 删除所有节点 包括子节点
deleteall /test

5. 节点属性查看

# 查看节点属性
stat /test

  其属性说明如下:

#创建节点的事物ID
cZxid = 0x385
#创建时间
ctime = Wed Jul 21 22:37:01 CST 2021
#修改节点的事物ID
mZxid = 0x385
#最后修改时间
mtime = Wed Jul 21 22:37:01 CST 2021
# 子节点变更的事物ID
pZxid = 0x385
#这表示对此znode的子节点进行的更改次数(不包括子节点)
cversion = 0
# 数据版本,变更次数
dataVersion = 0
#权限版本,变更次数
aclVersion = 0
#临时节点所属会话ID
ephemeralOwner = 0x0
#数据长度
dataLength = 17
#子节点数(不包括子子节点)
numChildren = 0

6. 节点的监听:

  客户添加 -w 参数可实时监听节点与子节点的变化,并且实时收到通知。非常适用保障分布式情况下的数据一至性。其使用方式如下:

命令

描述

ls -w path

监听子节点的变化(增,删)

get -w path

监听节点数据的变化

stat -w path

监听节点属性的变化

printwatches on|off

触发监听后,是否打印监听事件(默认on)

7. acl权限设置

    ACL全称为Access Control List(访问控制列表),用于控制资源的访问权限。ZooKeeper使用ACL来控制对其znode的防问。基于scheme:id:permission的方式

  进行权限控制。scheme表示授权模式、id模式对应值、permission即具体的增删改权限位。

  scheme:认证模型

方案

描述

world

开放模式,world表示全世界都可以访问(这是默认设置)

ip

ip模式,限定客户端IP防问

auth

用户密码认证模式,只有在会话中添加了认证才可以防问

digest

与auth类似,区别在于auth用明文密码,而digest 用sha-1+base64加密后的密码。在实际使用中digest 更常见。

  permission权限位

      

权限位

权限

描述

c

CREATE

可以创建子节点

d

DELETE

可以删除子节点(仅下一级节点)

r

READ

可以读取节点数据及显示子节点列表

w

WRITE

可以设置节点数据

a

ADMIN

可以设置节点访问控制列表权限

  

  acl 相关命令:

命令

使用方式

描述

getAcl

getAcl <path>

读取ACL权限

setAcl

setAcl <path> <acl>

设置ACL权限

addauth

addauth <scheme> <auth>

添加认证用户

   查看所有跟节点,并查看controller 节点的acl 权限

                

    设置 节点 acl 权限

    

zookeeper 节点介绍及节点常用命令总结的更多相关文章

  1. zookeeper客户端 zkCli使用及常用命令

    上篇(http://www.cnblogs.com/yangzhenlong/p/8270835.html)zk伪集群搭建好后,使用zkCli连接zk服务 切换到zk1/bin 目录,执行zkCli. ...

  2. Java篇:Docker的介绍安装 和常用命令

    文章目录 为什么 出现docker Docker的简介 容器(Container) 镜像(Image) 仓库(Repository) Docker的安装 查看容器 删除镜像 删除容器 部署应用 以my ...

  3. git介绍以及一些常用命令,加上vim编辑器的简单使用

    https://www.jianshu.com/p/04a6517869b4 vim:进入vim编辑器,如果后接文件名,则进入该文件的编辑模式,看图:①.vim编辑器中,按i进入编辑模式:②.按Esc ...

  4. ros中关于节点、话题、服务以及自定义消息等在终端中的常用命令

    以下面的计算力图说明 节点相关常用命令 在终端中查看项目中有哪些节点命令:rosnode list 有了节点信息想要查看节点中到底发布订阅了哪些话题,作为服务端服务类型或者作为客户端需要的服务类型以上 ...

  5. Consul常用命令

    1.consul启动# consul agent -dev # -dev表示开发模式运行,另外还有-server表示服务模式运行 注意:-dev节点的启动不能用于生产环境,因为该模式下不会持久化任何状 ...

  6. 版本控制-Git服务器搭建和常用命令使用

    Git是目前世界上最先进的分布式版本控制系统(没有之一).使用Svn的请参考<版本控制-svn服务器搭建和常用命令(centos 6.3)>,下面介绍Git的常用命令 常用命令 简单版 升 ...

  7. CentOS 常用命令大全

    下面,就给大家介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep &qu ...

  8. Linux系列教程(十八)——Linux文件系统管理之文件系统常用命令

    通过前面两篇博客,我们介绍了Linux系统的权限管理.Linux权限管理之ACL权限 介绍了通过设定 ACL 权限,我们为某个用户指定某个文件的特定权限,这在Linux只能对于一个文件只能有所有者权限 ...

  9. Java常用命令与参数设置

    我介绍的JDK版本: 首先.介绍下JDK常用参数设置,如下是我个人环境的参数: -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m 我们 ...

  10. aix 常用命令

    官网上的介绍: AIX 常用命令汇总 http://www.ibm.com/developerworks/cn/aix/library/au-dutta_cmds.html 我们先SSH 到AIX 系 ...

随机推荐

  1. MOSS对话式大型语言模型

    MOSS是复旦大学自然语言处理实验室发布的一种类似于ChatGPT的会话语言模型.MOSS能够按照用户的指示执行各种自然语言任务,包括回答问题.生成文本.摘要文本.生成代码等.MOSS还能够挑战错误的 ...

  2. 斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论

    前言 UE C++在国内目前还处于比较新的一个领域,网上能找到的教程多为蓝图教程,且质量良莠不齐.终于在B站找到了外网搬运的斯坦福UE C++课程,目前看下来是一个完整的ARPG游戏实例教学,对于入门 ...

  3. ElasticSearch-1

    原文链接:https://gaoyubo.cn/blogs/52ef5bf7.html 一.Elasticsearch 架构设计 Elasticsearch 架构层: Elasticsearch 五层 ...

  4. 心理健康数据集:mental_health_chatbot_dataset

    一.数据集描述 1.数据集摘要   该数据集包含与心理健康相关的问题和答案的对话对,以单一文本形式呈现.数据集是从流行的医疗博客(如WebMD.Mayo Clinic和HealthLine).在线常见 ...

  5. PostgreSQL常用运维SQL

    一.数据库连接 1.获取数据库实例连接数 select count(*) from pg_stat_activity; 2.获取数据库最大连接数 show max_connections 3.查询当前 ...

  6. GaussDB(DWS)性能调优:Sort+Groupagg聚集引起的性能瓶颈案例

    本文分享自华为云社区<GaussDB(DWS)性能调优:Sort+Groupagg聚集引起的性能瓶颈案例>,作者: O泡果奶~ . 本文针对SQL语句长时间执行不出来,且verbose执行 ...

  7. vue2升级vue3:TypeScript下vuex-module-decorators/vuex-class to vuex4.x

    因为vue2 下  vue-property-decorator + vue-tsx-support +vuex-module-decorators/vuex-class ,class compone ...

  8. linux添加用户,修改用户密码,修改用户权限,设置root用户操作

    1.添加普通用户 [root@server ~]# useradd chenjiafa   //添加一个名为chenjiafa的用户[root@server ~]# passwd chenjiafa  ...

  9. 从下个月开始,App Store 要求使用 Xcode 14 构建的 iOS 16 兼容应用程序

    Xcode 继向开发者发布第一个iOS 16.5 测试版后,苹果公司周二宣布了对开发者向 App Store 提交应用程序的新要求.从下个月开始,Apple 将要求每个应用程序都必须使用 Xcode ...

  10. iOS 应用上架的步骤和工具简介

    编辑 APP开发助手是一款能够辅助iOS APP上架到App Store的工具,它解决了iOS APP上架流程繁琐且耗时的问题,帮助跨平台APP开发者顺利将应用上架到苹果应用商店.最重要的是,即使没有 ...