zookeeper入门

目的:想把爬虫系统的配置转移到zookeeper管理java

zookeeper做为一个帮助搭建分布式系统的框架,在统一管理配置和选举master上的很是优秀。node

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等  apache


zookeeper安装部署

测试使用zookeeper很是简单,如今如今,简单的配置便可windows

download : http://www.apache.org/dyn/closer.cgi/zookeeper/(官方推荐版本) api

解压:目录结构 最主要的几个目录并发

bin 启动命令所在目录
conf zookeeper的配置 zoo.conf

windows下点击 zkserver.cmd 启动框架

zoo.conf的具体配置种目前最关键的就是 对外的端口 默认 2181分布式

观察控制台,通常不报错,就是启动成功了。oop


简单理解  

1:zookeeper 实现了一个简单的树形结构的文件系统,node节点的概念就是树形结构上的一个节点。测试

这样一个结构,每个node节点均可以存储数据,配置的统一管理实现根本也在这个地方,把配置数据存储到某一个节点上,我肯能够想象成咱们在咱们的电脑上建了一个层级的文件夹层,每个文件夹内均可以存放数据,这些数据就是咱们须要统一管理的配置信息。

2:如何实现的数据一致性 。

watcher :zookeeper客户端调用的时候,会定义一个wather ,watcher的概念个人理解就是一个看门狗,时刻的监控的本身监控的节点的数据变化,  好比咱们把咱们爬虫系统全局的一些信息(网站的最大并并发请求maxRrequestNum)存储到了node2-2 上,这个时候客户端链接到zookeeper文件系统后,对node2-2 这个path添加了监听,文件内容发生变化,通知客户端(对应举个例子就是给看门狗安排了个任务,给我看着这块地方,若是这块地方有啥动静,就叫两声,让主人知道),客户端收到这个变化的通知后,就能够同步最新的数据,保证数据一致性。给感兴趣的node添加的这个watcher(条看门狗)是保证一致性的关键。他能够在发生数据变化的时候及时通知客户端(主人)。

3:zookeeper 客户端调用。

 3.1:zookeeper自带了客户端调用的api

3.2: 还有一些三方封装的zkclient,使用起来也很是的方便。

 

3.3:调用代码:

code area

选举:

稍后在再研究....

相关文章
相关标签/搜索