本篇文章结构: 总共包括10 个系列 ZooKeeper 系 列 之 一 : ZooKeeper 简 介 ZooKeeper 系 列 之 二 : ZooKeeper 数 据 模 型 、命名空间以及节点的概念 ZooKeeper 系 列 之 三: ZooKeeper 的安装 ZooKeeper 系 列 之 四: ZooKeeper 的配置 ZooKeeper 系 列 之 五: ZooKeeper 的运行 ZooKeeper 系 列 之 六: ZooKeeper 四字命令 ZooKeeper 系 列 之 七: ZooKeeper 命令行工具 ZooKeeper 系 列 之 八: ZooKeeper 的简 单操作 ZooKeeper 系 列 之 九: ZooKeeper API 简 介 及编程 ZooKeeper 系 列 之 十: ZooKeeper 的一 致性保证及 Leader 选举 --------------------------------------------------------------------------------------- ZooKeeper 系列之一: ZooKeeper 简介 ZooKeeper 是一个为分布式应用所设计的分布的、开源的协调服务。分布式的应用可以建立在同步、配置管理、分组和命名等服务的更高级别的实现的基础之上。 ZooKeeper 意欲设计一个易于编程的环境,它的文件系统使用我们所熟悉的目录树结构。 ZooKeeper 使用 Java 所编写,但是支持 Java 和 C 两种编程语言。 众所周知,协调服务非常容易出错,但是却很难恢复正常,例如,协调服务很容易处于竞态以至于出现死锁。我们设计 ZooKeeper 的目的是为了减轻分布式应用程序所承担的协调任务。 ZooKeeper 系列之二: ZooKeeper 数据模型、命名空间以及节点的概念 ZooKeeper 数据模型和层次命名空间 提供的命名空间与标准的文件系统非常相似。一个名称是由通过斜线分隔开的路径名序列所组成的。ZooKeeper 中的每一个节点是都通过路径来识别。 下图是Zookeeper 中节点的数据模型,这种树形结构的命名空间操作方便且易于理解。 图:ZooKeeper 层次命名空间 ZooKeeper 中节点和临时节点 ZooKeeper 的节点是通过像树一样的结构来进行维护的,并且每一个节点通过路径来标示以及访问。除此之外,每一个节点还拥有自身的一些信息,包括:数据、数据长度、创建时间、修改时间等等。从这样一类既含有数据,又作为路径表标示的节点的特 点中,可 以看出,ZooKeeper 的节点既可 以被 看 做 是一个文件,又可 以被 看 做 是一个目录 ,它 同 时具 有二者 的特 点。为了便于表达 ,今 后 我们将 使 用Znode 来表示所讨 论 的ZooK...