1.基础配置
clientPort
- 客户端所连接的服务器所监听的TCP端口,默认情况下,服务端会监听在所有连接到这个端口的客户端,除非设置了clientPortAddress参数。客户端端口可以是任何值,默认为2181。
dataDir
和dataLogDir
- dataDir用于配置内存数据库保存的模糊快照的目录,如果某个服务器为集群中的一台,id文件也保存在该目录下。快照是以后台线程的方式来写入,不会锁定内存数据库。
- dataLogDir存储事务日志。服务端会尝试进行顺序写入事务日志。
tickTime
- tick的时长单位为毫秒,tick为zookeeper使用的基本时间度量单位。Zookeeper集群中使用的超时时间单位通过tickTime指定,即tickTime设置了超时时间的下限值,因为最小的超时时间为一个tick时间,客户端最小会话超时时事件为两个ticktime时间。
- tickTime默认值为3000毫秒,更低的tickTime值可以更快的发现超时问题,也会导致更高的网络流量(心跳信息)和更高的CPU使用率(会话存储器的处理)。
2.存储配置
preAllocSzie
- 用于设置预分配的事务日志文件的大小值,以kb为单位。
- 当写入事务日志文件时,服务端每次会分配preAllocSize值的KB的存储大小,通过这种方式可以分摊文件系统将磁盘分配存储空间和更新元数据的开销以及减少文件寻址操作的次数。
- 默认值为64MB,该值需要进行缩小,因为事务日志永远不可能达到这么大,每次快照后会重新启动一个新的事务日志,如果每次快照之间额度事务日志数量很小,而且每个事务本身也很小,那64MB的默认值就显得太大了。
- 默认值适用于:默认的snapCount和平均事务超过512字节的情况。
snapCount
- 指定每次快照之间的事务数。默认值为100000(10万)。
- 在snapCount已达到,但是前一个快照正在进行中,新的快照不会开始。
autopurge.snapRetainCount
- 进行清理数据操作的时候,需要保留的快照数量和对应的事务日志文件的数量。默认值为3。
autopurge.purgeInterval
- 对快照和日志进行垃圾回收操作时间间隔的小时数。如果设置为0,默认情况下,垃圾回收不会自动进行。
fsync.warningthresholdms
- 触发警告的存储同步操作的阀值,以毫秒为单位。默认值为1000毫秒。
- Zookeeper服务器在应答变化消息前会同步变化到存储中。如果同步系统调用消耗了太长时间,系统性能就会受到影响,在超过我们设定的阀值时,会产生一个警告信息。
weight.x=n
- x:为集群中的myid值
- n:表示该服务器在进行投票时的权重值。默认值为1。
traceFile
持续跟踪Zookeeper的操作,并将操作记录到跟踪日志中
,跟踪日志的文件名为traceFile.year.month.day。
3.网络配置
globalOutstandingLimit
- Zookeeper中待处理请求的最大值。默认值为1000。
- Zookeeper客户端提交请求比Zookeeper服务器端处理请求快很多,服务端将会对接收到的请求队列化,最终(也许几秒内)可能会导致服务端的内存溢出。为防止这个问题,Zookeeper服务端中如果待处理的请求达到globalOutstandingLimit值就会限制客户端的请求。如果在当前客户端没有一个待处理请求,则该客户端还可以发起一次。
maxClientCnxns
- 允许每个IP地址的并发socket连接的最大数量。Zookeeper通过流量控制和限制值来避免过载情况的发生。默认值为60。
- 在集群中,如5个机器中,一个客户端可以达到的最大连接值为5*60=300。
clientPortAddress
- 限制客户端连接到指定的接收信息的地址上。默认为所有。
minSessionTimeout
- 最小会话超时时间,单位为毫秒。默认值为两个tickTime。
maxSessionTimeout
- 会话的最大超时时间值,单位为毫秒,默认为20个tickTime。
4.集群配置
initLimit
- 对追随者最初连接到群首时的超时值,单位为tick值的倍数。没有默认值。
syncLimit
- 追随者与群首之间进行sync操作时的超时值,单位为ticket值的倍数。莫有默认值。
leaderServes
- 配置值为‘yes’或‘no’标志,只是群首服务器是否为客户端提供服务。
- server.x=[hostname]:n:n[:observer]
- x:集中中服务器的myid。
- hostname:集群服务器在网络中的名称(ip或域名)。
- 第一个n:用于事务发送的端口。
- 第二个n:用于群首选举的端口。
- observer:填写则表示,该服务器为观察者。
cnxTime
- 在群首选举打开一个新的连接的超时值。
electionAlg
- 选举算法的配置项。