]9.zookeeper原理解析-选举之QuorumPeerMain加载
=====================================斩秋|http://blog.csdn.net/quhongwei_zhanqiu=======================================
Zookeeper集群启动的入口类是QuorumPeerMain来加载配置启动QuorumPeer线程。首先我们来看下QuorumPeer, 谷歌翻译quorum是法定人数,定额的意思, peer是对等的意思,那么QuorumPeer中quorum代表的意思就是每个zookeeper集群启动的时候集群中zookeeper服务数量就已经确定了,在每个zookeeper的配置文件中配置集群中的所有机器
server.1=127.0.0.1:2886:3886
server.2=127.0.0.1:2887:3887
server.3=127.0.0.1:2888:3888
事实上着也确定zookeeper在运行中是不能动态扩容的,必须停下服务修改配置才可以;QuorumPeer中peer代表就是集中每个zookeeper角色是对等的没有主从之分,每个zookeeper服务都可以成为leader, follower,observer。
1. QuorumPeerMain加载
1) QuorumPeerConfig读取配置文件,如下面的zoo.cfg文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/workspace_zookeeper/data1
clientPort=2181
server.1=127.0.0.1:2886:3886
server.2=127.0.0.1:2887:3887
server.3=127.0.0.1:2888:3888
如上配置中每个server.X记录代表集群中的一个服务,QuorumPeerConfig会构建一个QuorumServer对象,其中的server.X中的X代表zookpeer的sid,每个zookeeper都会编辑自己的sid在dataDir目下的myid文件中,sid标记每个服务,在快速选举中起作用
server.X后值代表zookeeper服务地址ip以及选举其中zookeeper之间连接的端口
2)启动定时清理服务任务DatadirCleanupManager.start() 用来清除过期的txtLog和snapshot文件
3)构建QuorumPeer任务对象
3.1)设置供客户端连接的端口地址
3.2)设置txtLog和snapshot的操作对象FileTxnSnaplog
3.3)设置本Zookeeper的myid(sid)
3.4)设置客户端连接工厂
3.5)设置选举算法
3.6)各种时间设置等等
4)QuorumPeer.start()启动任务线程
分享到:
相关推荐
apache-zookeeper分布式框架,压缩包内容:(apache-zookeeper-3.7.1-bin.tar.gz、apache-zookeeper-3.7.1.tar.gz、apache-zookeeper-3.6.4-bin.tar.gz、apache-zookeeper-3.6.4.tar.gz、apache-zookeeper-3.5.10-...
zookeeper-3.5.7.zip文件 zookeeper-3.5.7.zip文件 zookeeper-3.5.7.zip文件 zookeeper-3.5.7.zip文件 zookeeper-3.5.7.zip文件 zookeeper-3.5.7.zip文件 zookeeper-3.5.7.zip文件 zookeeper-3.5.7.zip文件 ...
zookeeper-3.4.5-cdh5.16.2.tar.gz 资源包,之前的原网站上无法下载,后经多种途径下载到该资源包,上传到博客上供大家使用。
apache-zookeeper-3.5.7-bin.tar.gz 。
apache-zookeeper-3.7.0-bin.tar.gz
赠送jar包:twill-zookeeper-0.6.0-incubating.jar; 赠送原API文档:twill-zookeeper-0.6.0-incubating-javadoc.jar; 赠送源代码:twill-zookeeper-0.6.0-incubating-sources.jar; 赠送Maven依赖信息文件:twill-...
赠送jar包:zookeeper-3.4.10.jar; 赠送原API文档:zookeeper-3.4.10-javadoc.jar; 赠送源代码:zookeeper-3.4.10-sources.jar; 赠送Maven依赖信息文件:zookeeper-3.4.10.pom; 包含翻译后的API文档:zookeeper-...
zookeeper-3.5.8 版本, ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。
该项目代表了一组围绕 ZooKeeper 的实用程序类和包装器 org.linkedin/org.linkedin.zookeeper-impl/1.5.0/org.linkedin.zookeeper-impl-1.5.0.jar
apache-zookeeper-3.5.5.tar.gz,zookeeper的安装文件,解压后配置集群即可
apache-zookeeper-3.6.0.tar.gz
python库。 资源全名:piped.contrib.zookeeper-0.5.1.tar.gz
zookeeper-3.4.5-cdh5.4.0.jar
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性...window下先解压为apache-zookeeper-3.6.1-bin.tar.gz
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。
kafka-0.10.2.1 + zookeeper-3.4.9.zip ,kafka-0.10.2.1 + zookeeper-3.4.9.zip
apache-zookeeper-3.6.3-bin.tar的压缩包,解压到本地即可使用,还有zk.sh的脚本以及zoo.cfg和xsync。ZooKeeper 是一个分布式协调服务 ,由 Apache 进行维护。ZooKeeper 可以视为一个高可用的文件系统。ZooKeeper ...
zookeeper-3.5.2-alpha.tar.gzzookeeper-3.5.2-alpha.tar.gz
java开发中zookeeper相关的依赖Jar包,然后在IDE中添加此依赖。以及相应的zookeeper源码。
赠送jar包:twill-zookeeper-0.6.0-incubating.jar; 赠送原API文档:twill-zookeeper-0.6.0-incubating-javadoc.jar; 赠送源代码:twill-zookeeper-0.6.0-incubating-sources.jar; 赠送Maven依赖信息文件:twill-...