1. 简介

ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。

ZooKeeper通过其简单的架构和API解决了这个问题。ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。

ZooKeeper框架最初是在“Yahoo!"上构建的,用于以简单而稳健的方式访问他们的应用程序。 后来,Apache ZooKeeper成为Hadoop,HBase和其他分布式框架使用的有组织服务的标准。 例如,Apache HBase使用ZooKeeper跟踪分布式数据的状态。

2. 概念知识

层次命名空间

下图描述了用于内存表示的ZooKeeper文件系统的树结构(ZooKeeper的数据保存形式)。ZooKeeper节点称为 znode 。每个znode由一个名称标识,并用路径(/)序列分隔。

每个znode最多可存储1MB的数据

Znode的类型

Znode被分为持久(persistent)节点,顺序(sequential)节点和临时(ephemeral)节点。

  • 持久节点 - 即使在创建该特定znode的客户端断开连接后,持久节点仍然存在。默认情况下,除非另有说明,否则所有znode都是持久的。
  • 临时节点 - 客户端活跃时,临时节点就是有效的。当客户端与ZooKeeper集合断开连接时,临时节点会自动删除。因此,只有临时节点不允许有子节点。如果临时节点被删除,则下一个合适的节点将填充其位置。临时节点在leader选举中起着重要作用。
  • 顺序节点 - 顺序节点可以是持久的或临时的。当一个新的znode被创建为一个顺序节点时,ZooKeeper通过将10位的序列号附加到原始名称来设置znode的路径。例如,如果将具有路径 /myapp 的znode创建为顺序节点,则ZooKeeper会将路径更改为 /myapp0000000001 ,并将下一个序列号设置为0000000002。如果两个顺序节点是同时创建的,那么ZooKeeper不会对每个znode使用相同的数字。顺序节点在锁定和同步中起重要作用。

Watches(监视)

监视是一种简单的机制,使客户端收到关于ZooKeeper集合中的更改的通知。客户端可以在读取特定znode时设置Watches。Watches会向注册的客户端发送任何znode(客户端注册表)更改的通知。

Znode更改是与znode相关的数据的修改或znode的子项中的更改。只触发一次watches。如果客户端想要再次通知,则必须通过另一个读取操作来完成。当连接会话过期时,客户端将与服务器断开连接,相关的watches也将被删除。

ZooKeeper简介和概念知识相关推荐

  1. Zookeeper简介及核心概念

    一.Zookeeper简介 Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进行维护.Zookeeper 可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调 ...

  2. DL:深度学习(神经网络)的简介、基础知识(神经元/感知机、训练策略、预测原理)、算法分类、经典案例应用之详细攻略

    DL:深度学习(神经网络)的简介.基础知识(神经元/感知机.训练策略.预测原理).算法分类.经典案例应用之详细攻略 目录 深度学习(神经网络)的简介 1.深度学习浪潮兴起的三大因素 深度学习(神经网络 ...

  3. zookeeper简介以及C客户端用法

    zookeeper简介以及C客户端用法 前言 简介 zookeeper保证 理解zookeeper的顺序一致性 zookeeper 接口 安装 zoo.cfg参数详解 常用命令 C API zooke ...

  4. PyTorch学习笔记(二):PyTorch简介与基础知识

    往期学习资料推荐: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 本系列目录: PyTorch学习笔记(一):PyTorch环境安 ...

  5. 1.PMAC卡-简介和预备知识

    PMAC卡是功能非常强大的运动控制卡,但是网上PMAC的教程很少,仅有的几个教程还是官网培训教程,罗列概念和记流水账,最不喜欢这样的教程.自己学习PMAC卡的时候走了许多弯路,刚好找完工作就写一下PM ...

  6. PMAC简介和预备知识

     文章转自:http://blog.csdn.net/wenzhou1219 PMAC卡是功能非常强大的运动控制卡,但是网上PMAC的教程很少,仅有的几个教程还是官网培训教程,罗列概念和记流水账, ...

  7. BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略

    BigData:大数据开发的简介.核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS.HBase.Hive}+Docker).经典场景应用之详细攻略 BigData:大数 ...

  8. GIT项目管理工具(part1)--简介及概念

    本系列BLOG为鄙人学习GIT时的学习笔记.前一个知识点引出后一个知识点,后一个例子接着前一个例子. 文章目录 GIT简介 基本概念 导航 系列文章目录 GIT简介 什么是GIT(项目管理工具) gi ...

  9. 设计师:设计师知识储备之硬装部分/软装部分简介、家装材料知识(吊顶材料/门窗材料/五金材料/墙面材料/地面材料/胶粘材料/油漆材料/水电材料/瓦工部分)之详细攻略

    设计师:设计师知识储备之硬装部分/软装部分简介.家装材料知识(吊顶材料/门窗材料/五金材料/墙面材料/地面材料/胶粘材料/油漆材料/水电材料/瓦工部分)之详细攻略 目录 硬装部分/软装部分简介 硬装部 ...

最新文章

  1. maven初学者(一)
  2. 关于HTML的盒子的一些小问题
  3. 【高校宿舍管理系统】第十章 缺勤管理、报修管理、来访人员管理以及公告管理
  4. 多个线程“打架抢夺”同一个资源,该如何让它们安分?
  5. 手工建立mysql的服务_怎样自已手工打开mysql服务
  6. OpenGL笔记5 shader 调试信息获取 Debug
  7. 《Python自动化》学习笔记:百度云智能进行文字识别(代码干货)
  8. arduino数码管显示0到9_少儿Python程序第十二讲:单片机控制数码管
  9. CodeForces - 976C(结构体排序思维)
  10. python包安装-centos7/windows
  11. pmp 第六版 模拟卷1疑难问题
  12. 【滤波器】基于matlab高斯滤波器【含Matlab源码 995期】
  13. 快速幂算法(qwe)
  14. python: 集合操作符和关系符号
  15. HDL语言三种描述方式--结构化描述方式、数据流描述方式、行为级描述方式
  16. 猫眼 — 破解数字反爬获取实时票房
  17. 解决TortoiseSVN文件夹没有绿色对号
  18. Android 常用命令行和 源码编译
  19. 什么是UML、UML类图
  20. 基于LSTM的股票价格预测

热门文章

  1. 计算机如何表示色彩?
  2. Golang 元素值在经过通道传递时会被复制,这个复制是浅复制
  3. 认清自己,就能活出更好的自己
  4. 使用Spring容器
  5. LeetCode简单题之通过翻转子数组使两个数组相等
  6. AI推理与Compiler
  7. 计图MPI分布式多卡
  8. 英特尔 i5-9400F,或将成为本年最高性价比的游戏处理器
  9. SLAM架构的两篇顶会论文解析
  10. 【嵌入式】从STM32F103ZET6移植到STM32F103RCT6的流程