Zookeeper基本概念

集群角色:

leader:负责事务读写操作,

follower:读操作,把写操作交给leader,投票

observer:除了不投票几乎和follower一致

ZXID:

分布式事务id,全局唯一,一般作为事务id使用

会话:

每次服务端连接建立,存在一个会话,和服务端的通讯。一般会创建一个零时节点。

 

数据节点:

持久节点:是Zookeeper中最常⻅的⼀种节点类型,所谓持久节点,就是指节点被创建后会⼀直存在服
务器,直到删除操作主动清除
持久顺序节点:就是有顺序的持久节点,节点特性和持久节点是⼀样的,只是额外特性表现在顺序上。
顺序特性实质是在创建节点的时候,会在节点名后⾯加上⼀个数字后缀,来表示其顺序。
临时节点:就是会被⾃动清理掉的节点,它的⽣命周期和客户端会话绑在⼀起,客户端会话结束,节点
会被删除掉。与持久性节点不同的是,临时节点不能创建⼦节点。
临时顺序节点:就是有顺序的临时节点,和持久顺序节点相同,在其创建的时候会在名字后⾯加上数字
后缀。
查看数据节点状态:
cZxid 就是 Create ZXID,表示节点被创建时的事务ID。
ctime 就是 Create Time,表示节点创建时间。
mZxid 就是 Modified ZXID,表示节点最后⼀次被修改时的事务ID。
mtime 就是 Modified Time,表示节点最后⼀次被修改的时间。
pZxid 表示该节点的⼦节点列表最后⼀次被修改时的事务 ID。只有⼦节点列表变更才会更新 pZxid,
⼦节点内容变更不会更新。
cversion 表示⼦节点的版本号。
dataVersion 表示内容版本号。
aclVersion 标识acl版本
ephemeralOwner 表示创建该临时节点时的会话 sessionID,如果是持久性节点那么值为 0
dataLength 表示数据⻓度。
numChildren 表示直系⼦节点数。

 

wacher监听:

Zookeeper使⽤Watcher机制实现分布式数据的发布/订阅功能
在 ZooKeeper 中,引⼊了 Watcher 机制来实现这种分布式的通知功能。ZooKeeper 允许客户端向服务
端注册⼀个 Watcher 监听,当服务端的⼀些指定事件触发了这个 Watcher,那么就会向指定客户端发
送⼀个事件通知来实现分布式的通知功能。

ACL

三个⽅⾯来理解ACL机制:权限模式(Scheme)、授权对象(ID)、权限
(Permission),通常使⽤"scheme: id : permission"来标识⼀个有效的ACL信息。
1. IP
IP模式就是通过IP地址粒度来进⾏权限控制,如"ip:192.168.0.110"表示权限控制针对该IP地址,
同时IP模式可以⽀持按照⽹段⽅式进⾏配置,如"ip:192.168.0.1/24"表示针对192.168.0.*这个⽹段
进⾏权限控制。
2. Digest
Digest是最常⽤的权限控制模式,要更符合我们对权限控制的认识,其使
⽤"username:password"形式的权限标识来进⾏权限配置,便于区分不同应⽤来进⾏权限控制。
当我们通过“username:password”形式配置了权限标识后,Zookeeper会先后对其进⾏SHA-1加密
和BASE64编码。
3. World权限模
授权对象
IP
通常是⼀个IP地址或IP段:例如:192.168.10.110 或192.168.10.1/24
Digest
⾃定义,通常是username:BASE64(SHA-1(username:password))例如:
zm:sdfndsllndlksfn7c=
Digest
只有⼀个ID :anyone
Super
超级⽤户
World是⼀种最开放的权限控制模式,这种权限控制⽅式⼏乎没有任何作⽤,数据节点的访问权限
对所有⽤户开放,即所有⽤户都可以在不进⾏任何权限校验的情况下操作ZooKeeper上的数据。
另外,World模式也可以看作是⼀种特殊的Digest模式,它只有⼀个权限标识,即“world:
anyone”。
4. Super
Super模式,顾名思义就是超级⽤户的意思,也是⼀种特殊的Digest模式。在Super模式下,超级
⽤户可以对任意ZooKeeper上的数据节点进⾏任何操作。
posted @ 2021-02-27 14:38  BadFisher  阅读(39)  评论(0)    收藏  举报