conf/zoo.cfg配置文件的全面详细讲解:
clientPort | 客户端连接server的端口,即对外服务端口,一般设置为2181 |
dataDir | 存储快照文件snapshot的目录,默认情况下事务日志也会存储在这里 ZK会在特定的情况下触发一次快照,将当前服务节点的状态以快照文件的形式dump到磁盘上。 每生成一次快照都会生成一个对应的事务日志文件
快照数据文件命名:snapshot.x 事务日志文件命名:log.x+1 x是生成快照时的Zxid |
dataLogDir | 事务日志的输出目录 对事务操作,在返回客户端“事务成功”响应前,ZK需要确保将本次实务操作的事务日志写在磁盘上。 |
tickTime | 时间单元 比如客户端的超时连接有一个上下限(源码写死):2*tickTime - 20*tickTime 以及下面的 initLimit 和 syncLimit 都是以tickTime为时间单元 |
initLimit | 集群启动后会初始化数据,Leader允许其他Follower在 initLimit*tickTime 时间内完成这个工作。 |
syncLimit | 在运行过程中,Leader负责与ZK集群的所有机器进行通信,如果Leader发出心跳包在 syncLimit*tickTime 时间后,还没从Follower得到响应,那么则判断该Follower已不在线。 |
minSessionTimeout maxSessionTimeout | 超时时间有上下限:2*tickTime - 20*tickTime 如果客户端设置的超时时间不在上下限里,则会被强制设置为上限或者下限的值。 |
snapCount | 每进行 snapCount 次事务日志的输出后,触发一次快照。默认是十万次。 再产生新的 Leader 时吗,也会生成新的快照文件,同时生成对应事务文件。 |
autopurge.purgeInterval | 3.4.0及之后的版本,ZK提供自动清理事务日志和快照的功能。 该参数指定清理频率,单位为小时。 默认是0,表示不开启自动清理功能。 |
server.x=[hostname]:nnnnn[:nnnnn] | 这里的x是选举id。右边可配置两个端口,第一个端口用于Follower和Leader之间的数据同步及其他通信。 第二个端口用于Leader选举过程中的投票通信。 |
jute.maxbuffer | 每个节点最大数据量,默认1M |
globalOutstandingLimit | 最大请求堆积数,默认1000。 当ZK服务没有空闲处理客户端请求时,会把客户端的请求保存起来,提高吞吐性能。 为了防止内存溢出,需要限制保存的请求最大数量。 |
preAllocSize | 预先开辟磁盘空间,用于后续写入事务日志,默认64M,每个事务日志的大小就是64M |
electionAlg | 选举算法,默认为3 在3.4版本后,1,2对应的选举算法弃用,此项不用更改。 |
leaderServes | 默认情况,leader会接口客户端请求。 设置为no,则不接受客户端请求,而能专注与集群的协调,调高zk集群性能 |