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

目录:

  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. Mysql索引失效的几种原因-mysql-suo-yin-shi-xiao-de-ji-zhong-yuan-yin

    title: Mysql索引失效的几种原因 date: 2021-07-15 17:13:59.019 updated: 2021-12-26 17:43:12.489 url: https://ww ...

  2. Windows Server 2016 Standard RemoteApp应用发布配置举例

    RemoteApp 应用发布介绍 RemoteApp 是微软在Windows Server 2008 之后,在其系统中集成的一项服务功能,用户可以通过远程桌面访问远端服务器的桌面与程序,客户端本机在无 ...

  3. 文心一言 VS chatgpt (21)-- h264编码一帧数据的流程是怎样的?

    h264编码一帧数据的流程是怎样的? 文心一言: H.264编码将一帧数据分成多个块,其中每个块可以单独进行编码.编码的过程包括预测.变换和量化等步骤. 具体流程如下: 1.帧内预测:对一帧视频进行编 ...

  4. Asp .Net Core系列:AutoMapper自动映射框架介绍、使用

    1.介绍 AutoMapper是一个对象-对象映射器.对象-对象映射通过将一种类型的输入对象转换为另一种类型的输出对象来工作.使AutoMapper变得有趣的是,它提供了一些有趣的约定,以免去搞清楚如 ...

  5. 云图说 | 快速创建一个kubernetes集群

    摘要:3分钟快速创建您的第一个kubernetes虚拟机集群. 随着应用程序开发向基于容器的方向发展,编排和管理资源的需求变得越来越重要.Kubernetes是一个开源的.功能强大的容器编排系统,用于 ...

  6. 【乘风破浪的开发者】丁一超:从AI实战营出发探索未知的AI世界

    摘要:从年初的不知不觉进入AI学习的道路,到认识并熟练使用ModelArts平台.虽然只有短短的半年,但这半年的探索学习,让丁一超看清了未来的路在何方. 从招聘网站上输入"人工智能工程技术人 ...

  7. 如何正确使用Python临时文件

    摘要:临时文件通常用来保存无法保存在内存中的数据,或者传递给必须从文件读取的外部程序.一般我们会在/tmp目录下生成唯一的文件名,但是安全的创建临时文件并不是那么简单,需要遵守许多规则. 1.前言 临 ...

  8. 从源码角度详解Java的Callable接口

    摘要:本文从源码角度深入解析Callable接口. 本文分享自华为云社区<深入解析Callable接口>,作者: 冰 河 . 本文纯干货,从源码角度深入解析Callable接口,希望大家踏 ...

  9. DevSecOps“内置安全保护”,让软件研发“天生健康”

    摘要:我们主要是围绕安全架构设计保证安全落地有法可依,进行威胁建模让安全落地有迹可循.做好隐私和敏感数据保护让安全落地在每一个细节和实处这几个方面进行阐述. 本文分享自华为云社区<DevSecO ...

  10. 聊聊数仓中TPCD-DS&TPC-H与查询性能的那些事儿

    摘要:详细讲述使用GaussDB(DWS)时,如何使用TPC-DS/TPC-H等标准数据模型,获取DWS的查询性能数据. 本文分享自华为云社区<GaussDB(DWS) <DWS之TPCD ...