随笔分类 - zookeeper
摘要:在zookeeper中所有的读操作getData(), getChildren() 和 exists() 可以有一个选项设置一个观察(watch)。一个观察是一个单次的触发器,当这个观察设置的数据发生变化的时候,客户就会接到一个通知。以下是几个比较重要的点: 单次的触发: 如果一个客户做了getData("/znode1", true),然后/znode1的数据被改变了或者删除了,该客户就会得到一个观察事件。如果/znode1的数据又被改变了,这个客户将不会再收到通知,除非它再次进行读操作,并设置一个新的观察。 发送到客户: Zookeeper提供了一致性保证:一个客户首先
阅读全文
摘要:本文大部分翻译自: http://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html引言: Zookeeper主要为分布式程序提供一致性协调服务。Zookeeper数据模型: Zookeeper有一个分层的命名空间,很像一个分布式文件系统。与文件系统唯一的不同的是在系统中的每个节点可以包含数据和子节点。Znodes:en 在Zookeeper树中的每一个节点被称作为znode,znode维护了一个状态结构,其中包括数据变化的版本号,ccl变化,时间戳。每次数据改变之后,版本号就会增加。。每次客户更新数据的时候,也必须提供原数据的版
阅读全文
摘要:转载自:http://blog.csdn.net/poechant/article/details/6675431参考:Java端的API:http://zookeeper.apache.org/doc/r3.3.4/api/index.html另外,zookeeper源码中的cli_mt源码提供了很好的例子,最后有问题必须参照这个文件。1. zookeeper初始化zhandle_t*zookeeper_init(constchar*host,watcher_fnfn,intrecv_timeout,constclientid_t*clientid,void*context,intflags
阅读全文
摘要:本文转载自:http://blog.csdn.net/poechant/article/details/6650249zookeeper的默认配置文件为zookeeper/conf/zoo_sample.cfg,需要将其修改为zoo.cfg。其中各配置项的含义,解释如下:1.tickTime:CS通信心跳数Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。tickTime=20002.initLimit:LF初始通信时限集群中的follower服务器(F)与leader服务器(L)之间初始连接
阅读全文
摘要:zookeeper介绍zookeeper是一个为分布式应用提供一致性服务的软件,它是开源的Hadoop项目中的一个子项目,并且根据google发表的论文来实现的,接下来我们首先来安装使用下这个软件,然后再来探索下其中比较重要一致性算法。 zookeeper安装和使用zookeeper的安装基本上可以按照 http://hadoop.apache.org/zookeeper/docs/current/ zookeeperStarted.html 这个页面上的步骤完成安装,这里主要介绍下部署一个集群的步骤,因为这个官方页面似乎讲得并不是非常详细(Running Replicated Zookee.
阅读全文
摘要:Zookeeper 从设计模式角度来看,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生 变化,Zookeeper 就将负责通知已经在 Zookeeper 上注册的那些观察者做出相应的反应,从而实现集群中类似 Master/Slave 管理模式,关于 Zookeeper 的详细架构等内部细节可以阅读 Zookeeper 的源码下面详细介绍这些典型的应用场景,也就是 Zookeeper 到底能帮我们解决那些问题?下面将给出答案。统一命名服务(Name Service)分布式应用中,通常需要有一套完整的命名规则,既能够产生
阅读全文