当前位置 : 主页 > 编程语言 > java >

Zookeeper-02-概念

来源:互联网 收集:自由互联 发布时间:2022-07-13
本文将阐述zk中的一些概念,不会讨论这些概念是具体如何实现的 节点 节点是zk的最小存储单位,之前说过,zk类似一个文件系统,那么节点就相当于一个文件夹,节点还有子节点,子


本文将阐述zk中的一些概念,不会讨论这些概念是具体如何实现的

节点
节点是zk的最小存储单位,之前说过,zk类似一个文件系统,那么节点就相当于一个文件夹,节点还有子节点,子节点还有子节点
节点上有几个重要的属性,分别是
1.path:类似文件夹路径,格式是:/node1/node2
2.childNode:上边的node2就是node1的子节点
3.stat:节点状态属性,节点状态里面还包含很多属性,比较重要的就是path所对应的值和事务id

(3.1)path所对应的值,就是该节点的值,可以是任意东西,因为本质存的是字节,比方说你往节点里存一个图片,或者一个视频,都是可以的,只是原则上不应该这么做而已
(3.2)事务id,根据事务id可以知道是谁创建了该节点,谁修改了改节点

4.type:zk的节点类型

(4.1)持久节点
可以存放一些元数据,其他的还不了解,这是临时笔记
(4.2)临时节点
临时节点指的是当客户端断开连接之后,节点就会被清除掉,临时两个节点不可以拥有子节点,可以用于心跳和服务发现(配合监听watch)这种场景,如果属性ephemeralOwner不等于0,则表示这是一个临时节点,注:ephemeralOwner的值是一个seesion id
(4.3)持久序号节点:类似数据库ID自增,如果有个2个线程并发操作,那么就会创建两个序号,可以用这个特性做分布式锁
(4.4)临时序号节点:同持久序号节点,但是有临时节点的特性,节点断开就会被清除

节点监听(watch机制)
比方说服务A监听节点node1,那么其他节点修改/node1的时候,节点A马上就知道,但是当其他节点再次修改/a的时候,则不会再通知节点A,也就是说监听只能用一次,需要再次监听才可以,所以代码里也应该这样写:如果触发,则再次监听

权限设置(ACL访问控制列表,access control list)
表示某个服务是否可以访问某些节点

模式(scheme):有四种scheme

1.world模式:开放模式,默认模式,谁都可以访问
2.ip模式:指定客户端ip访问
3.auth模式: 明文帐号密码
4.digestsha1+base64模式:和auth差不多,只不过是密文帐号密码

许可(permission)

1.create许可:可以创建子节点
2.delete许可:可以删除子节点,仅下一级
3.read许可:可以读取本节点数据,可以显示子节点列表,注意,不可以读取子节点数据
4.write:可以设置本节点数据
5.admin:可以设置节点列表权限(permission)

设置znode的访问权限,格式是:​​setAcl scheme:id:permission​​ 权限首字母,假设要服务A在zk上的id是aid,对zk上的node1节点有读和写的权限,则命令应该这样写

setAcl /node1 world:aid:rw

【文章原创作者:华为云代理 http://www.558idc.com/hw.html处的文章,转载请说明出处】
上一篇:第一阶段:Java基础之API
下一篇:没有了
网友评论