Zookeeper 介绍 [To Be Continued]

来源:互联网 发布:复制信息淘宝打不开 编辑:程序博客网 时间:2024/05/18 12:44


原文链接:

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业务就可用。



客户端通过TCP与其中的一个Zookeeper服务器建立连接,然后发送心跳消息。如果连接断开,客户端会尝试连接到其他的Zookeeper服务器。

组织有序的:
Zookeeper给每次更新都分配一个唯一编号。这个编号代表一个事物记录。后续的操作可以用这个编号顺序实现一个高层的原语同步操作。

效率高:
Zookeeper 尤其适用于读操作的业务领域,一般读是写的10倍。

数据模型和分层次模型名字空间
名字就是由斜杠(/)分割的一系列路径元素。Zookeeper中每个节点由一个唯一的路径标识。










0 0