码迷,mamicode.com
首页 > 其他好文 > 详细

zookeeper初认识

时间:2018-01-14 13:53:05      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:最大   类型   点数据   nod   获得   blog   做什么   post   存在   

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初认识

标签:最大   类型   点数据   nod   获得   blog   做什么   post   存在   

原文地址:https://www.cnblogs.com/ninggrow/p/8283072.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!