学习笔记-Zookeeper

分布式锁服务:一个松散耦合的分布式系统中粗粒度锁以及可靠性存储(低容量)的系统
属于Hadoop生态圈中的一个,名字服务器,分布式同步,组服务

特点:
    数据模型:
  1. 命名空间
  2. 只有绝对路径,没有相对路径
  3. 以/为间隔的路径名序列组成
    每个节点自身的信息
  1.     数据
  2. 数据长度
  3. 开始时间
  4. 结束时间
    具有文件,路径的双重特点

节点类型:
  1. Persistent Nodes 永久性节点 默认
  2. Ephemeral Nodes 临时节点,仅在创建该节点client保持连接期间有效,一旦连接丢失,zookeeper会自动删除该节点
  3. sequence Nodes 顺序节点,client申请创建该节点时,zk会自动在节点路径末尾添加递增序号,这种类型实现分布式锁分布式queue等特殊功能关键
  4. 顺序节点不允许单独存在,所以会出现顺序节点+永久性节点和顺序节点+临时节点,一共四种节点。

监控机制:数据节点上设置,客户端被动收到通知(当父节点发现字节点挂了,父节点然后向客户端发送通知),各种读请求(除了消失监控,还有getData 数据发生变化的监控,getChildren,父节点上的字节点发生了变化,exit退出监控)

三个关键点:一次性监控,触发后,需要重新设置
                     保证先收到事件,再收到数据修改的信息
                     传递性,比如create 节点的时候会自动触发数据节点监控点,并同时触发父节点数据的监控点

数据权限:
    每个节点上的访问控制链保存了各客户端对于该节点的访问权限
    用一个三元组(机制:用户:权限)来定义客户端的访问权限例如:ip:19.22.0.9/16,READ 表示ip地址以12.22开头的主机有该数据节点的读权限,zookeeper自身提供ACL机制

应用场景:
  1. 配置管理,主要思想就是一个zk的节点背后是一个集群,相当于对一个zk节点访问就是对一个集群访问,因为这个集群会监控zk这个节点
  2. 集群管理
    1. 集群状态。 临时节点(Ephemeral),所有节点getChildren方法,获取所有节点状态,若某台服务器下线,自动删除该节点
    2. 选主服务器 临时节点和顺序节点搭配,选择最小编号的为主节点,当最小挂了后,由于是临时节点,自动删除,又出现一个小的几点当主服务器

队列管理:同步队列(所有成员都聚齐才能使用),FIFO队列
     

猜你喜欢

转载自blog.csdn.net/jameslvt/article/details/80926436