Zookeeper(2)常用命令,ACL权限

文章目录

  • 前言
  • 一、zk节点和节点类型
    • 节点类型
  • 二、常用命令
    • 1.客户端连接
    • 2.常用命令
      • help 帮助命令
      • 创建节点
      • get
      • set
      • delete
      • deleteall path
      • stat查看节点的状态
      • setquota增加配额
      • listquota /frame 查看配额
      • delquota删除配额
  • 三、ACL权限控制:
    • 1、ZooKeeper权限特性:
    • 2、Permission:授予的权限 CRWDA
      • world:
      • ip
      • auth
      • digest
    • 测试


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、zk节点和节点类型

znode数据存储图的讲解
在这里插入图片描述

节点类型

  1. PERSISTENT --持久化目录节点
    客户端与zookeeper断开连接后,该节点依旧存在
  2. PERSISTENT_SEQUENTIAL-持久化顺序编号节点
    客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号
  3. EPHEMERAL -临时节点
    客户端与zookeeper断开连接后,该节点被删除,临时节点不可以创建子节点
  4. EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点
    客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号

二、常用命令

1.客户端连接

保证集群启动

  • 使用zkCli.sh默认链接本机
    在这里插入图片描述
    quit 退出 会话
    close 关闭与服务端的连接

  • 或者使用 zkCli -server ip或者主机名:端口号 链接相应服务器
    我的主机名已经配ip了

zkCli.sh -server cluster1:2181

在这里插入图片描述

  • 或者是在zk命令行: connect ip地址或者主机名称:端口号, 链接相应服务器

2.常用命令

help 帮助命令

在这里插入图片描述

ls / 查看跟目录 后面必须

ls 存储路径 查看路径下的信息(路径必须是绝对路径)

 ls [-s] [-w] [-R] path
列出子节点 -s状态 -R 递归查看所有子节点 -w 添加监听

递归查询跟节点的所有子节点 ls -R /
ls -w / 查看监听根目录 ,如果根下的子节点发生变化都会被监听,只监听一次 (为了少占资源)提高效率

在这里插入图片描述
改变状态 都会被ls -w 监控到但是只监听一次
在这里插入图片描述

创建节点

create [-s] [-e] [-c] [-t ttl] path [data] [acl]
  • -s 创建有序节点
  • -e 创建临时节点
  • data 节点内容 老版本必须有内容
  • acl(Access contro list)访问控制权限

创建普通节点
在这里插入图片描述
创建持久节点

创建持久有序
在这里插入图片描述
创建临时节点

create -e /fram/spring/aop 'aop'

持久化节点都是0X0 临时的ephemeralOwner和这次会话放id一样 说明这个东西是属于这个会话的 当会话消失 临时文件消失
在这里插入图片描述

临时的不能有子节点(临时持久都不能有)
在这里插入图片描述

创建临时有序节点
create -e -s /fram/spring/mvc ‘mvc1’
create -e -s /fram/spring/mvc ‘mvc2’
create -e -s /fram/spring/mvc ‘mvc3’
在这里插入图片描述
你会发现所有的顺序都是有序的
当退出后临时节点都消失了
在这里插入图片描述


get

get [-s] [-w] path

get /frame/spring
get -s /frame/spring
set /frame/spring ‘spirng1’
get -s /frame/spring
set /frame/spring ‘spirng111’
get -s /frame/spring
create /frame/spring/boot ‘boot’
get -s /frame/spring
delete /frame/spring/boot
get -s /frame/spring
get -w /frame/spring 查看节点内容并监控 但是也是只监控一次
在另外一个会话中,改变/frame/spring的内容
set /frame/spring ‘spirng4’
set /frame/spring ‘spirng5’ 发现只有一次可以触发监控
在这里插入图片描述
在这里插入图片描述

zxid:节点创建时的zxid
ctime:节点创建时间
mZxid:节点最近一次更新时的zxid
mtime:节点最近一次更新的时间
pZxid: 表示该节点的子节点列表最后一次修改的事务ID,添加子节点或删除子节点就会影响子节点列表,但是修改子节点的数据内容则不影响该ID
cversion:子节点更新次数
dataVersion:本节点数据更新次数
aclVersion:节点ACL(授权信息)的更新次数
ephemeralOwner:如果该节点为临时节点,ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是临时节点,ephemeralOwner值为0
dataLength:节点数据长度,本例中为hello world的长度
numChildren:子节点个数

set

set [-s] [-v version] path data

更新节点内容:
set /frame/spring ‘spring1’ 更新节点内容
在这里插入图片描述

delete

delete [-v version] path 删除单个节点
删除节点,(不能存在子节点)
delete /frame/spring/mvc0000000008
create /frame/spring/boot ‘boot’
create /frame/spring/boot/sarun ‘SpringApplicationrun’
delete /frame/spring/boot 错误

deleteall path

删除路径及所有子节点

deleteall /frame/spring/boot
在这里插入图片描述

stat查看节点的状态

stat /frame/spring

setquota增加配额

setquota -n|-b val path

-n 设置子节点的配额数量
-b 设置节点内容的长度

setquota -n 3 /frame 为/frame路径设置子节点数量限制 包含自己在内,最多3个子节点

listquota /frame 查看配额

ls /frame 查看子节点
在另外一个会话中打开日志:
tail -f /usr/zookeeper/logs/zookeeper-root-server-cluster1.out
create /frame/mybatis ‘ORM’
create /frame/hibernate ‘ORM’ 第二次创建目录时就会提示
listquota查询配额
listquota path
-1 表示无限, 即没有限制
listquota /frame
在这里插入图片描述

delquota删除配额

delquota [-n|-b] path

delquota /frame 删除所有配额

删除配额好 配额米有了
在这里插入图片描述

三、ACL权限控制:

ACL:Access Control List 访问控制列表
相关命令:
getAcl 获取某个节点的acl权限信息
setAcl 设置某个节点的acl权限信息
addauth 输入认证授权信息,注册时输入明文密码(登录),但是在zk的系统里,密码是以加密后的形式存在的

1、ZooKeeper权限特性:

ZooKeeper的权限控制是基于每个znode节点的,需要对每个节点设置权限

  • 每个znode支持设置多种权限控制方案和多个权限
  • 子节点不会继承父节点的权限,客户端无权访问某节点,但可能可以访问它的子节点

授权格式:
授权策略:授权对象: 权限
scheme: id: Permission

Scheme:(计划)授权的策略 包含下面:

  • world:默认方式,相当于全部都能访问 代表所有人

  • ip:使用客户端的主机IP作为ACL ID 。这个ACL表达式的格式为addr/bits ,此时addr中的有效位与客户端addr中的有效位进行比对。

  • auth:使用已添加认证的用户认证(cli中可以通过addauth digest user:pwd 来添加当前上下文中的授权用户)

  • digest:即用户名:密码这种方式认证,这也是业务系统中最常用的。用username:password 字符串来产生一个MD5串,然后该串被用来作为ACL ID。认证是通过明文发送username:password 来进行的,当用在ACL时,表达式为username:base64 ,base64是password的SHA1摘要的编码。

ID:授权的对象
权限赋予的用户或者一个实体,例如:IP 地址 或者是用户(授权) 或者是 anyone

2、Permission:授予的权限 CRWDA

  • zookeeper支持的权限
  • CREATE©: 创建权限,可以在在当前node下创建child node
  • READ®: 读权限,可以获内容及子节点
  • WRITE(w): 写权限,可以向当前node写数据
  • DELETE(d): 删除权限,可以删除当前的child nodes
  • ADMIN(a): 管理权限,可以设置当前node的permission

world:

  • setAcl /aaa world:anyone:crwa 设置权限 米有删除权限
  • getAcl /aaa 查看权限
  • delete /aaa/a 不能删除
  • setAcl /aaa world:anyone:crwd 设置米有acl权限
  • delete /aaa/a 可以删除
  • ls /aaa 查询
  • setAcl /aaa world:anyone:crwda 在设置回去发现不成功
  • delete /aaa 直接删除节点

ip

setAcl /bbb ip:192.168.106.130:crwa 设置权限 和ip
当设置后只能这个ip的访问
非ip下会显示无访问权限
在这里插入图片描述
不过可以在 重新编写ip 重新设置

可以同时设置多个
在这里插入图片描述

auth

addauth digest scott:tiger
setAcl /ccc auth:scott:crwda

在这里插入图片描述
重新连接后需要重新再次添加授权用户才可以查看
不过可以删除
在这里插入图片描述

设置正确的认证信息后可以重新访问 名字:密码
在这里插入图片描述

digest

create /eee 555

setAcl /eee digest:user:6DY5WhzOfGsWQ1XFuIyzxkpwdPo=:crwda 创建摘要

addauth digest user:123456 添加用户
成功后可以查看
在这里插入图片描述
父节点的权限不会限制到子节点

在这里插入图片描述

测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/467751.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从单机到分布式微服务,大文件校验上传的通用解决方案

一、先说结论 本文将结合我的工作实战经历,总结和提炼一种从单体架构到分布式微服务都适用的一种文件上传和校验的通用解决方案,形成一个完整的方法论。本文主要解决手段包括多线程、设计模式、分而治之、MapReduce等,虽然文中使用的编程语言…

【开发】SpringBoot 整合 Redis

目录 前言 1. Redis 的下载及安装 1.1 Redis 的下载 1.2 安装 Redis 1.3 启动 Redis 2. 创建 SpringBoot 项目整合 Redis 2.1 环境要求 2.2 SpringBoot项目构建 2.2.1 方式一 2.2.2 方式二 2.3 在 pom.xml 文件中导入依赖坐标 2.4 在 application.properties 中加…

通过docker容器安装zabbix6.4.12图文详解(监控服务器docker容器)

一、相关环境及镜像 环境:ubuntu 22.04,zabbix-server6.4,mysql8.0 前提: 1)先安装docker环境 2)下载相关镜像 docker pull mysql:8.0 docker pull zabbix/zabbix-java-gateway:alpine-6.4-latest docker …

25考研|北大软微会「爆炸」吗?

软微不是已经爆炸了吗? 大家去看看他的录取平均分就知道了,没有实力千万别碰,现在考软微已经不存在捡漏之说。 110408的复试线已经划到了465分,这个人真的不低了,因为有数学一和408两个比较难的专业课,复…

从零开始学习在VUE3中使用canvas(三):font(字体)

一、简介 我们可以使用font在canvas中绘制文字,方式如下: const ctx canvas.getContext("2d"); // 绘制文字 ctx.font "24px 黑体, 宋体"; //字体大小 首选字体 备选字体 ctx.fillText("这里是显示的字的内容", 100, 50); //文字…

力扣106---从中序和后序序列构造二叉树

题目描述: 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7], postorder [9,15,7,20…

Django HTML模版

一个网站的基本框架(如页面布局、导航栏、页脚栏等)往往是相同的。可以把这个基本框架做成一个模版,其它正式的HTML页面可以直接套用这个模版,可以大减少各HTML文件的代码量。 语法(模版文件中)&#xff1…

蓝桥杯练习题——健身大调查

在浏览器中预览 index.html 页面效果如下: 目标 完成 js/index.js 中的 formSubmit 函数,用户填写表单信息后,点击蓝色提交按钮,表单项隐藏,页面显示用户提交的表单信息(在 id 为 result 的元素显示&#…

python统计分析——单样本分布形状和概率密度

参考资料:python统计分析【托马斯】 一、单样本分布的形状参数 在scipy.stats中,连续分布函数的特征是他们的位置和尺度。举两个例子:对于正态分布,(位置/形状)是由分布的(均值/标准差&#xf…

计算地球圆盘负荷产生的位移

1.研究背景 计算受表面载荷影响的弹性体变形问题有着悠久的历史,涉及到许多著名的数学家和物理学家(Boussinesq 1885;Lamb 1901;Love 1911,1929;Shida 1912;Terazawa 1916;Munk &…

B003-springcloud alibaba 服务治理 nacos discovery ribbon feign

目录 服务治理服务治理介绍什么是服务治理相关方案 nacos实战入门搭建nacos环境安装nacos启动nacos访问nacos 将商品微服务注册进nacos将订单微服务注册进nacos订单服务通过nacos调用商品服务 实现服务调用的负载均衡什么是负载均衡代码实现负载均衡增加一个服务提供者自定义实…

HTML5语义化元素

在HTML5之前,网站的分布层级有哪些呢? nav,header,main,footer 这样做有一个弊端 我们往往过多的使用div,通过ID或class来区分元素 对于浏览器来说这些元素不够语义化 对于我来说搜索引擎来说,不…

鸿蒙Harmony应用开发—ArkTS声明式开发(绘制组件:Line)

直线绘制组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Line(value?: {width?: string | number, height?: string | number}) 从API version 9开始,该接…

深入理解mysql 从入门到精通

1. MySQL结构 由下图可得MySQL的体系构架划分为:1.网络接入层 2.服务层 3.存储引擎层 4.文件系统层 1.网络接入层 提供了应用程序接入MySQL服务的接口。客户端与服务端建立连接,客户端发送SQL到服务端,Java中通过JDBC来实现连接数据库。 …

AI基础知识(3)--神经网络,支持向量机,贝叶斯分类器

1.什么是误差逆传播算法(error BackPropagation,简称BP)? 是一种神经网络学习算法。BP是一个迭代学习算法,在迭代的每一轮使用广义的感知机学习规则对参数进行更新估计。基于梯度下降(gradient descent&am…

2025张宇考研数学基础36讲,视频百度网盘+PDF

一、张宇老师全年高数体系(听课用书指南) 25张宇全程: docs.qq.com/doc/DTmtOa0Fzc0V3WElI 复制粘贴在浏览器上打开,就可以看到2025张宇的全部的啦! 一般来说我们把考研数学划分为3-4个阶段,分别是基础阶…

第五篇:数字视频广告格式概述 - IAB视频广告标准《数字视频和有线电视广告格式指南》

第五篇:第五篇:数字视频广告格式概述 - IAB视频广告标准《数字视频和有线电视广告格式指南 --- 我为什么要翻译介绍美国人工智能科技公司IAB系列技术标准(2) ​​​​​​​翻译计划 第一篇序言第二篇简介和目录第三篇概述- IA…

新能源汽车小三电系统

小三电系统 新能源电动汽车的"小三电"系统,一般指车载充电机(OBC)、车载 DC/DC 变换器,和高压直流配电盒(PDU)。一辆纯电动汽车一般配备一台OBC 和一台车载 DC/DC 变换器。OBC将外部输入的交流电转化为直流电输出给电池,DC/DC衔接…

基于spring boot实现接口管理平台

数据库结构 /* Navicat MySQL Data TransferSource Server : localhost_3306 Source Server Version : 50724 Source Host : localhost:3306 Source Database : interfaceTarget Server Type : MYSQL Target Server Version : 50724 File Encoding…

C++——字符串、读写文件、结构体、枚举

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…