配置项介绍
基础配置
-
tickTime
:Client
和Server
通信心跳数。 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