原文链接:
http://zookeeper.apache.org/doc/trunk/zookeeperOver.html
ZooKeeper 是一个基于Apache 基金会的开源项目。他提供一个 分布式环境中 应用程序 的协调同布服务。
Zookeeper提供了一组原语服务,分布式应用程序程序可以用这些原语实现 同步,配置维护,及分组和命名服务。他采用熟悉的目录树作为实现的数据模型。采用JAVA开发,并且与JAVA,C绑定。
ZooKeeper主要开发目的是为大家提供一个可以快速实现分布式同步系统的方法。从而可以轻松解决分布式协同带来的竞争和死锁问题,更好的让大家专注于业务开发。
设计目标
简单:Zookeeper通过一个共享的分层名字空间来实现分布式程序(进程)的协同。与标准的文件系统类似。名字空间主要有 znode组成或者叫数据记录节点(data regrister)。与文件系统不同的是,Zookeeper 名字空间存放在内存中,便于提高吞吐量和降低延时。文件系统是存放在外存中。
Zookeeper具有如下特点:系统的高可靠性和性能,及严格的访问顺序。可靠性可以解决单点故障的问题。严格的访问顺序是由客户端复杂的分布式原语来实现的。
可复制的:Zookeeper 设计成可以通过一组主机(Ensemble)来完成复制。
组成ZooKeeper业务的服务器必须彼此感知对方的状态。系统在内存中维护了一个状态镜像,还包括存储在永久存储区的 事物日志及快照。只要大部分服务器可用,Zookeeper业务就可用。