zookeeper中zoo.cfg详解
zookeeper通常采用配置文件zoo.cfg加载配置,其可以配置的参数为:
-
clientPort:
用于配置当前服务器对客户端暴露的端口
,一般配置为2181,无默认值 -
dataDir:
用于配置zookeeper服务器存储快照文件(zookeeper 节点数据)的目录,无默认值 -
dataLogDir:
用于配置服务器存储事务日志文件的目录,有默认值dataDir,但是建议将两个目录分别配置,防止磁盘的并发读写,影响服务器性能。可将其配置在一个单独的磁盘上。 -
tickTime:
心跳时间,用于配置服务器最小时间的单位,默认值3000ms,心跳检测时间通常是该单位的倍数。如客户端与服务端之间的会话超时时间在2tickTime~20tickTime之间。 -
initLimit:
用于配置leader服务器等待Follewer服务器启动,并完成数据同步的时间,默认为10,表示10*tickTime -
syncLimit:
用于配置leader服务器和Follewer服务器之间进行心跳检测的最大延时时间,默认为5,表示5*tickTime -
minSessionTimeout & maxSessionout:
用于服务端对客户端会话超时时间的限制,也就是客户端自定义的超时时间必须在minSessionTimeout~maxSessionout内,其默认为分别为2 和 20,时间表示为2tickTime~20tickTime -
maxClientCnxns:
从socket层面限制单个客户端和单台服务器之间的最大并发连接数,即以IP地址粒度来进行连接数的限制,如果为0,表示不作限制,默认为60 -
clientPortAddress:
针对多网卡的机器,该参数允许为每个IP地址指定不同的监听端口 -
server.id=host:port:port:
用于配置组成zookeeper集群的机器列表,其中id为serverId,与myid文件中的值对应。第一个端口用于指定Leader服务器和Follewer服务器进行运行时通信和数据同步所使用的端口,第二个端口用于进行Leader选举过程中的投票通信 -
autopurge.snapRetainCount:
用于配置zookeeper在自动清理的时候需要保留的快照数据文件数量和对应的事务日志文件,默认为3,切自定义值小于3也会取值3
仅支持系统属性方式配置的参数:
-
jute.maxbuffer:
用于配置单个数据节点(ZNode)上可存储的最大数据量大小,默认为4MB -
snapCount:
用于配置相邻两次数据快照之间的事务操作次数,即zookeeper会在snapCount次事务之后进行一次数据快照,默认为100000 -
preAllocSize:
用于配置zookeeper事务日志文件预分配的磁盘空间大小,默认为65536,单位KB,即64MB,与snapCount同时修改,如将snapCount设置为500,每次事务操作的数据量最多为1KB,则preAllocSize设置为500即可
forceSync:
用于配置zookeeper是否在事务提交的时候,将日志写入操作强制刷入磁盘,默认为yes,表示强制刷盘
skipAcl:
用于配置zookeeper是否跳过ACL权限检查,默认为mo,即会对每一个客户端请求进行权限检查