zookeeper通常采用配置文件zoo.cfg加载配置,其可以配置的参数为:
- clientPort:用于配置当前服务器对客户端暴露的端口,一般配置为2181,无默认值
- dataDir:用于配置zookeeper服务器存储快照文件(zookeeper 节点数据)的目录,无默认值
- dataLogDir:用于配置服务器存储事务日志文件的目录,有默认值dataDir,但是建议将两个目录分别配置,防止磁盘的并发读写,影响服务器性能。可将其配置在一个单独的磁盘上。
- tickTime:心跳时间,用于配置服务器最小时间的单位,默认值3000ms,心跳检测时间通常是该单位的倍数。如客户端与服务端之间的会话超时时间在2_tickTime~20_tickTime之间。
- initLimit:用于配置leader服务器等待Follewer服务器启动,并完成数据同步的时间,默认为10,表示10*tickTime
- syncLimit:用于配置leader服务器和Follewer服务器之间进行心跳检测的最大延时时间,默认为5,表示5*tickTime
- minSessionTimeout & maxSessionout:用于服务端对客户端会话超时时间的限制,也就是客户端自定义的超时时间必须在minSessionTimeout~maxSessionout内,其默认为分别为2 和 20,时间表示为2_tickTime~20_tickTime
- 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