Zookeeper概念简介

115 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情

Zookeeper

相关概念

是什么

Zookeeper是⼀个开源的分布式协调服务,zookeeper提供了分布式数据⼀致性的解决⽅案,分布式应⽤程序可以基于它实现诸如数据订阅/发布、负载均衡、命名 服务、集群管理、分布式锁和分布式队列等功能;

术语名词

  1. 集群

    • Zookeeper是以集群模式运行的,最低三台设备运行,每台设备在集群中有自己的角色,通常有Leader、Follower、Observer三种⻆⾊;通过集群之间的选举选出leader服务器,提供你客户端的读写服务,Obserever不参与过半选举,提供读服务;
  2. 会话session

    • 就是客户端跟服务端的建立的长连接
  3. 数据节点Znode

    • 分为两类数据节点

      机器节点:指的就是集群中的机器;

      文件节点:/开始,保存数据的数据节点,也是数据保存的最小单元,多个数据节点就组成了数据树ZNode Tree;

      也就是 ZooKeeper把数据信息被保存数据节点上,这些节点被称为znode。ZNode作为数据存储的最⼩数据单位,在 ZNode 下⾯⼜可以再挂 ZNode,这样⼀层层下去就形成了⼀个层次化 命名空间 ZNode 树,我们称为 ZNode Tree,使用层级树状结构进⾏管理;

    • 节点可以分成三大类

      • 持久性节点(Persistent)
      • 临时性节点(Ephemeral)
      • 顺序性节点(Sequential)

      其中两两组合

      持久节点:

      是Zookeeper中最常⻅的⼀种节点类型,所谓持久节点,就是指节点被创建后会⼀直存在服 务器,直到删除操作主动清除 ,服务重启他依然存在;

      持久顺序节点:

      就是有顺序的持久节点,节点特性和持久节点是⼀样的,只是额外特性表现在顺序上。 顺序特性实质是在创建节点的时候,会在节点名后⾯加上⼀个数字后缀,来表示其顺序。

      临时节点:

      会被⾃动清理掉的节点,它的⽣命周期跟客户端会话一致,会话结束节点会被删除掉。与持久性节点不同的是,临时节点不能创建⼦节点。

      临时顺序节点:

      有顺序的临时节点,和持久顺序节点相同,在其创建的时候会在名字后⾯加上数字后缀,作为顺序的延续;

  4. 版本

    • Zookeeper会为每个znode数据节点维护一个stat的数据结构,有version当前节点,cversion子节点的版本号,aversion当前节点ACL状态((Access Control List))
  5. (Access Control List) ACL 过程控制权限

    • · CREATE:创建⼦节点的权限
    • READ:获取节点数据和⼦节点列表的权限
    • WRITE:更新节点数据的权限。
    • DELETE:删除⼦节点的权限。
    • ADMIN:设置节点ACL的权限
  6. WATCH监听

    wathcer(事件监听器,Zookeeper允许⽤户在指定节点上注册 ⼀些Watcher监听事件,当监听的事件发生特定事件触发的时候,Zookeeper服务端会将事件通知到订阅此事件的客户端, 该机制是Zookeeper实现分布式协调服务的重要特性;