zookeeper 入门 001

用处

  • 配置管理
  • 分布式锁
  • 组成员管理(hbase)
  • DNS服务

    不适合

  • 存储大量数据,只适合存储协调服务的关键数据

目的

  主要用于搭配kafka进行学习。因为kafka就是使用zookeeper作为协调服务用的。

zookeeper存储模型

  Zookeeper的存储结构采用的是层次化的文件结构模型,很像数据结构当中的树,也很像文件系统的目录。树是由节点所组成,Zookeeper的数据存储也同样是基于节点,这里称之为znode。
  Znode包含4个信息。
  data:Znode存储的数据信息。
  ACL:记录Znode的访问权限,哪些ip那些人可以访问本节点。
  stat:包含Znode的各种元数据,比如事务id,大小,时间戳等。

Znode特点

  • Znode的引用方式是路径引用,类似于文件路径:/a/b。
  • znode数据只支持全量读取和写入。
  • Znode的API都是互不影响的。

    ZNode分类

  • 持久。zookeeper集群,client宕机后,重启依旧还在。
  • 临时。client宕机,或者一定时间没有发消息,那就消失。

zk session

zk session是zk客户端和zk集群中某一个节点建立的,客户端可以主动关闭session,zk节点如果在这个session所关联的timeout时间内收到客户端消息,zk客户端也会关闭节点,如果zk客户端发现所连接的zk节点出错,会自动和其他zk节点建立连接。

zk Quorun模式

  这个模式就是集群模式,包含多个zookeeper节点,其中一个是lead节点,其余的是follower节点。lead节点可以处理读写请求,follower节点只能处理读请求,若是follower节点收到写请求,会将其转发给lead处理。