zookeeper zoo.cfg配置参数详解

最小必要配置的参数

clientPort

服务的监听端口

dataDir

用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了。 )

tickTime

心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间

高级配置参数

dataLogDir

用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争

globalOutstandingLimit

client请求队列的最大长度,防止内存溢出,默认值为1000

preAllocSize

预分配的Transaction log空间为block个proAllocSize KB,默认block为64M,一般不需要更改,除非snapshot过于频繁

snapCount

在snapCount个snapshot后写一次transaction log,默认值是100,000

traceFile

用于记录请求的log,打开会影响性能,用于debug的,最好不要定义

maxClientCnxns

最大并发客户端数,用于防止DOS的,默认值是10,设置为0是不加限制

clientPortBindAddress

3.3.0后新增参数,可是设置指定的client ip以及端口,不设置的话等于ANY:clientPort

minSessionTimeout

3.3.0后新增参数,最小的客户端session超时时间,默认值为2个tickTime,单位是毫秒

maxSessionTimeout

3.3.0后新增参数,最大的客户端session超时时间,默认值为20个tickTime,单位是毫秒

集群参数

electionAlg

用于选举的实现的参数,0为以原始的基于UDP的方式协作,1为不进行用户验证的基于UDP的快速选举,2为进行用户验证的基于UDP的快速选举,3为基于TCP的快速选举,默认值为3

initLimit

多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值

leaderServes

leader是否接受客户端连接。默认值为yes。 leader负责协调更新。当更新吞吐量远高于读取吞吐量时,可以设置为不接受客户端连接,以便leader可以专注于同步协调工作。默认值是yes,说明leader可以接受客户端连接。(注意:当集群中有超过3台ZooKeeper Server时,强烈建议打开leader选举 )

server.x=[hostname]:nnnnn[:nnnnn], etc

配置集群里面的主机信息,其中server.x的x要写在myid文件中,决定当前机器的id,第一个port用于连接leader,第二个用于leader选举。如果electionAlg为0,则不需要第二个port。hostname也可以填ip。

syncLimit

多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃。

group.x=nnnnn[:nnnnn]

weight.x=nnnnn

这两个是用于集群分组的参数,暂时只有3台机器,没仔细研究,先给个例子看看吧

group.1=1:2:3 group.2=4:5:6 group.3=7:8:9 ? weight.1=1 weight.2=1 weight.3=1 weight.4=1 weight.5=1 weight.6=1 weight.7=1 weight.8=1 weight.9=1

参考:http://blog.sina.com.cn/s/blog_a577cd8a01014whx.html

希望此文能够帮助到您!

猜你喜欢

转载自blog.csdn.net/king_qc/article/details/81200434