Java高频面试题- 每日三连问?【Day28】 — ZooKeeper篇(四)

2022-04-12 14:18:50 浏览数 (1)

问题导读

一、说说ACL 权限控制机制?

二、Chroot 特性?

三、会话管理?

01

说说ACL 权限控制机制?

正经回答:

UGO(User/Group/Others)

目前在 Linux/Unix 文件系统中使用,也是使用最广泛的权限控制方式。是一 种粗粒度的文件系统权限控制模式。

ACL(Access Control List)访问控制列表

包括三个方面:

权限模式(Scheme)

(1)IP:从 IP 地址粒度进行权限控制

(2)Digest:最常用,用类似于 username:password 的权限标识来进行权限 配置,便于区分不同应用来进行权限控制

(3)World:最开放的权限控制方式,是一种特殊的 digest 模式,只有一个 权限标识“world:anyone”

(4)Super:超级用户

授权对象

授权对象指的是权限赋予的用户或一个指定实体,例如 IP 地址或是机器灯。

权限Permission

(1)CREATE:数据节点创建权限,允许授权对象在该 Znode 下创建子节点

(2)DELETE:子节点删除权限,允许授权对象删除该数据节点的子节点

(3)READ:数据节点的读取权限,允许授权对象访问该数据节点并读取其数据 内容或子节点列表等

(4)WRITE:数据节点更新权限,允许授权对象对该数据节点进行更新操作

(5)ADMIN:数据节点管理权限,允许授权对象对该数据节点进行 ACL 相关设置操作

分享朋友圈,每天进步一点点~

02

Chroot 特性?

正经回答:

3.2.0 版本后,添加了 Chroot 特性,该特性允许每个客户端为自己设置一个 命名空间。如果一个客户端设置了 Chroot,那么该客户端对服务器的任何操 作,都将会被限制在其自己的命名空间下。

通过设置 Chroot,能够将一个客户端应用于 Zookeeper 服务端的一颗子树相 对应,在那些多个应用公用一个 Zookeeper 进群的场景下,对实现不同应用间 的相互隔离非常有帮助。

03

会话管理?

正经回答:

分桶策略:

将类似的会话放在同一区块中进行管理,以便于 Zookeeper 对会话 进行不同区块的隔离处理以及同一区块的统一处理。

分配原则:每个会话的“下次超时时间点”(ExpirationTime)

计算公式:

ExpirationTime_ = currentTime sessionTimeout

ExpirationTime = (ExpirationTime_ / ExpirationInrerval 1) *

ExpirationInterval , ExpirationInterval 是指 Zookeeper 会话超时检查时 间间隔,默认tickTime

- End -

0 人点赞