基于Zookeeper的使用详解

2015-01-24信息快讯网

本篇文章介绍了,基于Zookeeper的使用说明,需要的朋友参考下

更多内容请查看zookeeper官网

Zookper: 一种分布式应用的协作服务

Zookper是一种分布式的,开源的,应用于分布式应用的协作服务。它提供了一些简单的操作,使得分布式应用可以基于这些接口实现诸如同步、配置维护和分集群或者命名的服务。Zookper很容易编程接入,它使用了一个和文件树结构相似的数据模型。可以使用Java或者C来进行编程接入。

众所周知,分布式的系统协作服务很难有让人满意的产品。这些协作服务产品很容易陷入一些诸如竞争选择条件或者死锁的陷阱中。Zookper的目的就是将分布式服务不再需要由于协作冲突而另外实现协作服务。

设计目标 Zookeeper是简易的

Zookeeper通过一种和文件系统很像的层级命名空间来让分布式进程互相协同工作。这些命名空间由一系列数据寄存器组成,我们也叫这些数据寄存器为znodes。这些znodes就有点像是文件系统中的文件和文件夹。和文件系统不一样的是,文件系统的文件是存储在存储区上的,而zookeeper的数据是存储在内存上的。同时,这就意味着zookeeper有着高吞吐和低延迟。

Zookeeper实现了高性能,高可靠性,和有序的访问。高性能保证了zookeeper能应用在大型的分布式系统上。高可靠性保证它不会由于单一节点的故障而造成任何问题。有序的访问能保证客户端可以实现较为复杂的同步操作。

Zookeeper是可重用的

ZooKeeper Service

基于Zookeeper的使用详解_信息快讯网

组成Zookeeper的各个服务器必须要能相互通信。他们在内存中保存了服务器状态,也保存了操作的日志,并且持久化快照。只要大多数的服务器是可用的,那么Zookeeper就是可用的。

客户端连接到一个Zookeeper服务器,并且维持TCP连接。并且发送请求,获取回复,获取事件,并且发送连接信号。如果这个TCP连接断掉了,那么客户端可以连接另外一个服务器。

Zookeeper是有序的

Zookeeper使用数字来对每一个更新进行标记。这样能保证Zookeeper交互的有序。后续的操作可以根据这个顺序实现诸如同步操作这样更高更抽象的服务。

Zookeeper是高效的

Zookeeper的高效更表现在以读为主的系统上。Zookeeper可以在千台服务器组成的读写比例大约为10:1的分布系统上表现优异。

数据结构和分等级的命名空间

Zookeeper的命名空间的结构和文件系统很像。一个名字和文件一样使用/的路径表现,zookeeper的每个节点都是被路径唯一标识

ZooKeeper's Hierarchical Namespace

基于Zookeeper的使用详解_信息快讯网

实现

下图显示了ZooKeeper服务的高级组件服务。除了请求处理器,Zookeeper服务器组的每个服务器复制他们自己的每个组件。

ZooKeeper Components

基于Zookeeper的使用详解_信息快讯网

replicated database是一个存储在内存中的包含整个数据树的结构。所有的更新操作都做日志到硬盘上了。并且写操作在作用在数据库的时候会序列化存储到硬盘上。

每个ZooKeeper服务器都连接了许多个客户端。客户端连接到一个服务器来提交请求。

php MessagePack介绍
php5.5中类级别的常量使用介绍
PHP利用REFERER根居访问来地址进行页面跳转
分享下PHP register_globals 值为on与off的理解
从PHP $_SERVER相关参数判断是否支持Rewrite模块
ThinkPHP利用PHPMailer实现邮件发送实现代码
使用php判断服务器是否支持Gzip压缩功能
使用PHP下载CSS文件中的图片的代码
DOM XPATH获取img src值的query
PHP循环函数使用介绍之PHP基础入门教程
PHP中的str_repeat函数在JavaScript中的实现
PHP Session 变量的使用方法详解与实例代码
浅析PHP原理之变量分离/引用(Variables Separation)
如何使用FireFox插件FirePHP调试PHP
比较strtr, str_replace和preg_replace三个函数的效率
解析posix与perl标准的正则表达式区别
PHP程序级守护进程的实现与优化的使用概述
关于尾递归的使用详解
Zend的Registry机制的使用说明
Zend的MVC机制使用分析(二)
Zend的MVC机制使用分析(一)
记录mysql性能查询过程的使用方法
php中get_headers函数的作用及用法的详细介绍
使用php get_headers 判断URL是否有效的解决办法
php中serialize序列化与json性能测试的示例分析
php 模拟get_headers函数的代码示例
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
str_replace只替换一次字符串的方法
php中使用preg_replace函数匹配图片并加上链接的方法
APACHE的AcceptPathInfo指令使用介绍
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
PHP的异常处理类Exception的使用及说明
Notice: Trying to get property of non-object problem(PHP)解决办法
©2014-2024 dbsqp.com