配置项介绍

基础配置

  • tickTimeClientServer通信心跳数。 Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每隔tickTime的时间就会发送一个心跳。tickTime以毫秒为单位。

  • initLimit:LF初始通信时限。 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。

  • syncLimit:LF同步通信时限。 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。

  • dataDir:数据文件目录。 Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。

  • clientPort:客户端连接端口。 客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口,接受客户端的访问请求。

  • maxClientCnxns:客服端最大连接数 默认值是60,一个客户端能够连接到同一个服务器上的最大连接数,根据IP来区分。如果设置为0,表示没有任何限制。设置该值一方面是为了防止DoS攻击。

高级配置

一般情况下,不需要更改或添加以下配置,根据用户实际需求再添加或修改即可。

  • dataLogDir:用于配置ZooKeeper服务器存储事务日志文件的路径。

  • globalOutstandingLimit:限制系统中未处理的请求数量不超过globalOutstandingLimit设置的值。默认的限制是1000

  • preAllocSize:用于配置ZooKeeper事务日志文件预分配的磁盘空间大小。默认的块大小是64M

  • snapCount: ZooKeeper将事务记录到事务日志中。当snapCount 个事务被写到一个日志文件后,启动一个快照并创建一个新的事务日志文件。snapCount的默认值是100000

  • traceFile:如果定义了该选项,那么请求将会记录到一个名为 traceFile.year.month.day的跟踪文件中。

  • autopurge.snapRetainCount: 当启用自动清理功能后, ZooKeeper将只保留autopurge.snapRetainCount个最近的数据快照(dataDir)和对应的事务日志文件(dataLogDir),其余的将会删除掉。默认值是3,最小值也是3

  • autopurge.purgeInterval:用于配置触发清理任务的时间间隔, 以小时为单位。要启用自动清理,可以将其值设置为一个正整数(大于1)。默认值是0

  • syncEnabled: 和参与者一样,观察者现在默认将事务日志以及数据快照写到磁盘上, 这将减少观察者在服务器重启时的恢复时间。将其值设置为false可以禁用该特性。默认值是true

  • minSessionTimeout:服务器允许客户端会话的最小超时时间,以毫秒为单位。默认值是2倍的tickTime

  • maxSessionTimeout:服务器允许客户端会话的最大超时时间,以毫秒为单位。默认值是20倍的tickTime

日志输出配置

ZooKeeper的日志输出信息都打印到了zookeeper.out文件中,这样输出路径没有办法控制。

通过修改zkEnv.sh可以达到控制日志输出信息的位置。使用如下命令(如图所示):

vi /opt/zookeeper-3.4.12/bin/zkEnv.sh

根据实际情况修改ZOO_LOG_DIR的值并保存即可。

 

ZooKeeper配置

根据用户实际需求修改配置文件,以达到用户的目标。

一般地,ZooKeeper的配置文件放在安装目录的conf文件夹中,通过vi命令直接修改并保存,并重启ZooKeeper即可完成。

例如:

vi /opt/zookeeper-3.4.12/conf/zoo.cfg

 

根据需求直接编辑并保存即可(#为注释符号,表示该行不会被ZooKeeper读取。例如maxClientCnxns,如果希望该配置项生效,需要将#删除)。

编程要求

本关任务是使用命令行,将最大用户连接数设置为100,并启动服务器(启动服务器之前确保服务器处于关闭状态,可通过status查看服务器状态)。

vi /opt/zookeeper-3.4.12/conf/zoo.cfg

把 “# maxClientCnxns=60 ”
改为
maxClientCnxns=100

zkServer.sh start

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐