1. zk基础

一 zk基本概念

 集群角色

  • Leader:为客户端提供读写服务
  • Follower:提供读服务,所有写服务都需要转交给 Leader 角色,参与选举
  • Observer:提供读服务,不参与选举过程,一般是为了增强 zk 集群的读请求并发能力

 会话(session)

  • zk 客户端与服务端之间的连接
  • 通过心跳检测保持客户端连接的存活
  • 接收来自服务端 watch 时间通知
  • 可以设置超时时间

 数据节点(ZNode)

  • zk 树形结构中的数据节点,用于存储数据,可分为持久节点和临时节点
  • 持久节点:一旦创建,除非主动调用删除操作,否则一直存储在 zk 上
  • 临时节点:与 session 绑定,一旦session 失效,这个客户端创建的所有临时节点都会被移除
  • SEQUENTIAL ZNode:创建节点时,如果设置属性 SEQUENTIAL ,则会自动在节点名后面追加一个整型数字 

 版本

  • Version:当前 Znode 的版本
  • Cversion:当前Znode 子节点的版本
  • Aversion:当前Znode 的ACL 版本

 Watcher

  • 作用于 Znode 节点上
  • 多种事件通知:数据更新,子节点状态等

 ACL

  • Access Control Lists:访问控制列表
  • 类似于Linux/Unix 的权限控制
  • CREATE:创建子节点的权限
  • READ:获取节点数据和子节点列表的权限
  • WRITE:更新节点数据的权限
  • DELETE:删除子节点的权限
  • ADMIN:设置子节点 ACL 的权限

 

 

二 zk 客户端命令

 ls path [watch]

  • 列出指定节点下所有子节点
  • path:指定数据节点的节点路径
  • ls 只能查看指定节点第一级的所有子节点
  • watch 表示 监听 path 的子节点的变化,只有一次有效

 create [-s] [-e] path data acl

  • 创建 zk 节点
  • -s 或 -e 表示创建顺序节点还是临时节点,不加默认创建的是持久节点
  • path 为节点的全路径,没有相对节点的表示方式
  • data 为当前节点内存储的数据
  • acl 用来进行权限控制,默认不做任何权限控制

 get path [watch]

  • 获取指定节点的数据内容和属性信息
  • path 表示指定数据节点的节点路径
  • 获取的信息包括
    • 节点内数据信息
    • cZxid:创建该节点的事务id
    • ctime:创建时间
    • Mzxid:最后一次更新该节点的事务id
    • mtime:最后一次更新时间
    • cversion:子节点版本
    • dateVersion:数据版本
    • aclVersion:acl 访问控制版本
    • ephemeralOwner:临时节点拥有者
    • dataLength:当前节点长度
    • numChildren:子节点数量

 set path data [version]

  • 更新指定节点的数据内容
  • path 表示被更新的节点路径
  • data 为更新的数据
  • version 为指定被更新的数据版本,一般不指定,如果数据版本已经更新,则指定旧版本时会报错

 delete path [version]

  • 删除指定节点
  • path 和 version 同 set 操作

 

1. zk基础

上一篇:unittest单元测试


下一篇:vs联合halcon——采集图像(实时采集与单次采集)