background image

PHP

——

教程

Zookeeper 的使用详解

关于 Zookeeper 的使用说明,更多内容请查看 zookeeper 官网
Zookper: 一种分布式应用的协作服务
Zookper 是一种分布式的,开源的,应用于分布式应用的协作服务。它提供了一些简单的
操作,使得分布式应用可以基于这些接口实现诸如同步、配置维护和分集群或者命名的服
务。Zookper 很容易编程接入,它使用了一个和文件树结构相似的数据模型。可以使用 Java
或者 C 来进行编程接入。
众所周知,分布式的系统协作服务很难有让人满意的产品。这些协作服务产品很容易陷入
一些诸如竞争选择条件或者死锁的陷阱中。Zookper 的目的就是将分布式服务不再需要由
于协作冲突而另外实现协作服务。

 

设计目标 Zookeeper 是简易的
Zookeeper 通过一种和文件系统很像的层级命名空间来让分布式进程互相协同工作。这些
命名空间由一系列数据寄存器组成,我们也叫这些数据寄存器为 znodes。这些 znodes 就有
点像是文件系统中的文件和文件夹。和文件系统不一样的是,文件系统的文件是存储在存
储区上的,而 zookeeper 的数据是存储在内存上的。同时,这就意味着 zookeeper 有着高吞
吐和低延迟。
Zookeeper 实现了高性能,高可靠性,和有序的访问。高性能保证了 zookeeper 能应用在大
型的分布式系统上。高可靠性保证它不会由于单一节点的故障而造成任何问题。有序的访
问能保证客户端可以实现较为复杂的同步操作。
Zookeeper 是可重用的
ZooKeeper Service

组成 Zookeeper 的各个服务器必须要能相互通信。他们在内存中保存了服务器状态,也保
存了操作的日志,并且持久化快照。只要大多数的服务器是可用的,那么 Zookeeper 就是
可用的。
客户端连接到一个 Zookeeper 服务器,并且维持 TCP 连接。并且发送请求,获取回复,获
取事件,并且发送连接信号。如果这个 TCP 连接断掉了,那么客户端可以连接另外一个
服务器。
Zookeeper 是有序的