-
session机制
-
session用于客户端和服务端之间的连接,由客户端创建,可设置超时时间,通过心跳包机制(客户端向服务端ping包请求),检查心跳结束,session过期。
-
session过期的时候,该session创建的所有临时节点都会被抛弃。
-
watcher机制
-
对接点进行watcher操作get stat
-
对某个节点进行监控
get path watcher stat path watcher
-
针对每个节点的操作都可以有一个监控者,当节点的数据发生变化,会触发watcher事件。
-
zookeeper中watcher是一次性的,触发后立即销毁。
-
所有有watcher的节点在变更操作的时候都会触发watcher事件。
-
子节点的watcher操作(监控父节点,当父节点对应的子节点发生变更的时候,父节点上的watcher会被触发),增删会触发,修改不会,如果子节点在去新增子节点,不会触发,也就是说触发watcher事件一定是直系子节点。
-
zookeeper的acl权限控制:针对节点可以设置相关的读写权限,目的是为了保证数据的安全性,权限permission可以指定不同的权限范围及角色。
-
常用命令:
-
getAcl 获取节点权限
getAcl /kangswx
-
setAcl 设置节点权限
-
addauth 输入认证授权信息,注册时输入明文密码,但是在zk里,以解密的形式保存
-
-
acl的组成:[scheme?permission]
- world下只有一个id,也就是anyone,表示所有人world:anyone:permisions
- auth:代表认证登录,需要注册用户有权限才可以,auth:user:password:permisions
- digest需要密码才能访问,digest:username:BASE64(SHA1(password)):permisions。(跟auth区别在于,auth明文,digest为密文)
- ip ip:localhost:permisions
- super代表超管,拥有所有的权限(极少使用)
-
permissions权限组合字符串cdrwa
- c create 创建子节点
- d delete 删除子节点
- r read 读取节点的数据
- w write 写入数据
- a admin 可管理的权限
-
向zookeeper中添加用户
addauth digest kangswx:kangswx
-
向某个节点设置权限:
setAcl /kangswx auth:kangswx:kangswx:cdrwa
-
查看某个节点的权限
getAcl /kangswx
-
acl的使用场景:
- 开发环境跟测试环境,使用acl就可以实现分离,开发者无权操作测试的节点
- 生产环境上控制指定ip的服务可以访问相关的节点
zookeeper的session机制、watcher机制及acl机制的介绍
最新推荐文章于 2023-02-15 10:27:36 发布