# #的Windows下安装
解压到本地目录:d:\ JavaSoft的\饲养员-3.4.9
修改配置文件名复制zoo_sample.cfg文件并修改文件名(目录d:\ JavaSoft的\饲养员-3.4.9 \ conf)为zoo.cfg
配置文件信息
“
#每个tick的毫秒数
tickTime = 2000
#初始
#同步阶段可以采用的
tick
数initLimit = 10 #可以使用的tick 数在
发送请求和获取确认
syncLimit = 5
#存储快照的目录之间传递。
do not use /tmp for storage, /tmp here is just
example sakes.
dataDir=D://tmp/zookeeper
the port at which the clients will connect
clientPort=2181
the maximum number of client connections.
increase this if you need to handle more clients
maxClientCnxns=60
#
Be sure to read the maintenance section of the
administrator guide before turning on autopurge.
#
http:///doc/current/zookeeperAdmin.html#sc_maintenance
#
The number of snapshots to retain in dataDir
autopurge.snapRetainCount=3
Purge task interval in hours
Set to “0” to disable auto purge feature
autopurge.purgeInterval=1
server.1=10.11.12.5:2888:3888
“`
server.1 = 10.11.12.5:2888:3888 1是一个数字,标识这个是第几号服务器10.11.12.5是这个服务器的IP地址(或者是与IP地址做了映射的主机名)2888第一个端口用来集群成员的信息交换,标识这个服务器与集群中的领导服务器交换信息的端口3888是在leader挂掉时专门用来进行选举leader用的端口
#原理ZooKeeper是以Fast Paxos算法为基础的,Paxos算法存在活锁的问题,即当有多个提议者交错提交时,有可能互相排斥导致没有一个提议者能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader(领导者) ,只有领导者才能提交提议者,具体算法可见Fast Paxos。因此,要想弄懂ZooKeeper首先得对Fast Paxos有所了解。[ 百度百科](https:///item/zookeeper/4836397? FR =阿拉丁)动物园管理员的基本运转流程:1,选举组长2中,同步数据3,选举组长过程中算法有很多,但要达到的选举标 是一致的。4,负责人要具有最高的执行ID,类似根权限。5,集群中大多数的机器得到响应并按照选出的组长。
#特点
- 在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。如果在创建znode时Flag设置为EPHEMERAL,那么当创建这个znode的节点和Zookeeper失去连接后,这个znode将不再存在在Zookeeper里,Zookeeper使用Watcher察觉事件信息。当客户端接收到事件信息,比如连接超时、节点数据改变、子节点改变,可以调用相应的行为来处理数据。Zookeeper的Wiki页面展示了如何使用Zookeeper来处理事件通知,队列,优先队列,锁,共享锁,可撤销的共享锁,两阶段提交。
- 那么Zookeeper能做什么事情呢,简单的例子:假设我们有20个搜索引擎的服务器(每个负责总索引中的一部分的搜索任务)和一个总服务器(负责向这20个搜索引擎的服务器发出搜索请求并合并结果集),一个备用的总服务器(负责当总服务器宕机时替换总服务器),一个web的cgi(向总服务器发出搜索请求)。搜索引擎的服务器中的15个服务器提供搜索服务,5个服务器正在生成索引。这20个搜索引擎的服务器经常要让正在提供搜索服务的服务器停止提供服务开始生成索引,或生成索引的服务器已经把索引生成完成可以提供搜索服务了。使用Zookeeper可以保证总服务器自动感知有多少提供搜索引擎的服务器并向这些服务器发出搜索请求,当总服务器宕机时自动启用备用的总服务器。