zookeeper初认识

Posted ninggrow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zookeeper初认识相关的知识,希望对你有一定的参考价值。

zookeeper是什么

zookeeper是一个分布式应用协调系统,它主要提供了命名服务、状态同步服务、集群管理、分布式应用配置项的管理等功能。

简单的说,zookeeper=文件系统+通知机制。

  • zookeeper维护着一个类似文件系统的数据结构。每个目录项被称为znode,和文件系统一样,我们能够自由的增加、删除znode,在一个zonde下增加、删除子znode。
  • 客户端注册监听它关心的目录节点,当这个目录节点发生变化时,zookeeper会通知客户端。

zookeeper的主要操作就是围绕目录节点进行的:

  1. 创建节点
  2. 读取节点数据
  3. 更新节点数据
  4. 删除节点
  5. 监控节点变化

其中节点被组织成目录树的形式,每个节点下面都可以有一些子节点。

节点可以是以下四种类型:

  • PERSISTENT:持久化目录节点,这个目录节点存储的数据不会丢失;
  • PERSISTENT_SEQUENTIAL:顺序自动编号的目录节点,这种目录节点会根据当前已存在的节点数自动加1,然后返回给客户端已经创建成功的目录节点名;
  • EPHEMERAL:临时目录节点,一旦创建这个节点的客户端与服务端的session超时,这个节点就会被自动删除;
  • EPHEMERAL-SEQUENTIAL:临时自动编号节点。

监控节点变化时,可以监控一个节点的变化,也可以监控一个节点下所有子节点的变化。

zookeeper能做什么

  1. 命名服务
    在分布式系统中,经常需要给一个资源生成唯一的一个ID,在没有中心管理节点的情况下生成这个ID并不是一件容易的事儿。zk就提供了这样一个命名服务。
    一般是使用create方法创建一个自动编号的节点。
  2. 配置管理
    主要用于多个节点共享配置,并且在配置发生更新时,利用zk可以让这些使用了这些配置的节点获得通知,进行重新加载等操作。
  3. 集群管理
    集群管理主要有两点:一是资源定位,二是集群选主。
    监听是否有机器退出和加入、动态选举Master(最小节点法、最大数据法)
  4. 分布式锁
    实现起来和集群选主基本一致,都是创建一个自动编号的临时节点,然后watch父节点,判断自己是否是最小编号节点。
  5. 队列管理
  • 同步队列,当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达。
  • 队列按照FIFO方式进行入队和出队操作。

以上是关于zookeeper初认识的主要内容,如果未能解决你的问题,请参考以下文章

一步一步学ZooKeeper-ZooKeeper初了解

猿创征文|[Zookeeper]快速上手Zookeeper.Zookeeper的初识别,安装,znode节点的理解,常用命令,Wacher机制,ACL权限控制及上述功能在idea的代码实现

dubbo+zookeeper初体验

JAVA 连接 ZooKeeper之初体验

Zookeeper 初体验之——伪分布式安装(转)

大数据Hadoop之ZooKeeper认识