您的位置:首页 > 其它

Zookeeper源码分析(四)-zoo.cfg的详解和选举的概念

2015-10-16 16:07 183 查看
虽然参照源码和网上的一些文章了解了zookeeper,但是有些概念和详解还需记录一下

1.zoo.cfg

dataDir  // 存储内存数据库快照地址
dataLogDir  // 更新内存数据库事务日志的地址
clientPort  // 客户端连接的端口
clientPortAddress //客户端地址名称
tickTime  //每次发送心跳包时间(默认为3000)
maxClientCnxns  //客户端连接最大数量
minSessionTimeout  //默认为-1
maxSessionTimeout  //默认为-1
initLimit  // 限制同步期间心跳包的初始数量
syncLimit  // 限制从发送请求到确认请求时间内的心跳包数量,即客户端连接服务器的超时时间是(syncLimit*tickTime)
electionAlg   //选举算法(默认为3是 FastLeaderElection)
quorumListenOnAllIPs  //是否监听所有ip的端口,默认为false(只绑定server下的选举端口的ip)
peerType //服务器类型(observer/participant),observer不参与投票,如果和server里的配置不一样则server里的有效
syncEnabled  //默认为true
autopurge.snapRetainCount   //自动清洗dataDir,dataLogDir目录后保存的快照数据数量(默认最低为3)
autopurge.purgeInterval     //自动清洗频率(单位为小时,默认为0)

server //quorumServer服务器列表,可以有三种配置(zoo1:2888或zoo1:2888:3888或zoo1:2888:3888:participant),zoo1:2888配置只有当electionAlg=0才有效
例:
server.1=zoo1:2888:3888:participant
server.2=zoo2:2888:3888:observer
server.3=zoo3:2888:3888:participant

group //机器分组,等号后面的1,2,3,4,5,6,7,8,9是sid
例:
group.1=1:2:3
group.2=4:5:6
group.3=7:8:9

weight //机器权重,没有配置的机器默认权重为1
例:
weight.1=1
weight.2=1
weight.3=1

其他的通过System.setProperty("zookeeper." + key, value);放到系统变量里去了。

注意:当没有配置group时,Leader选举成功是通过QuorumMaj(即超过半数票就是Leader)实现的;
否则则是通过QuorumHierarchical实现的


选举的一些概念

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: