本章内容,翻译自https://zookeeper.apache.org/...

这部分内容是基本配置:
clientPort:侦听客户端连接的端口;即客户端尝试连接到的端口。

secureClientPort:侦听使用SSL进行安全客户端连接的端口。

observerMasterPort:侦听观察者连接的端口;即观察者尝试连接的端口。如果设置了该属性,则除了在领导模式下外,服务器还将在跟随者模式下承载观察者连接,并在观察者模式下相应地尝试连接到任何投票对等方。

dataDir:存储zookeeper内存快照数据的目录。默认情况下,更新数据库的事务日志也会存放在该目录。

tickTime:单个tick的时间长度,以毫秒为单位。是zookeeper的基本时间单位。

下面介绍的是扩展配置:
dataLogDir:指定数据库事务日志的存放目录。如果不设置,事务日志将存放在 dataDir指定的目录。

globalOutstandingLimit:客户机提交请求的速度比ZooKeeper处理请求的速度要快,特别是在有很多客户机的情况下。为了防止ZooKeeper由于排队请求而耗尽内存,ZooKeeper将限制客户端,以便系统中未处理的请求不超过globalOutstandingLimit。默认限制为1000。

preAllocSize:zookeeper提前分配的用以事务日志的空间,默认大小64M。如果内存频繁生成,可能就需要修改此值。

snapCount:zookeeper使用快照和事务日志记录事务,本参数用以指定事务日志中事务的数量。默认值是100000。

commitLogCount:zookeeper在内存维护的请求提交列表,以便和follower快速同步数据。默认值:500

snapSizeLimitInKb: 事务日志中记录的事务集合中允许的总大小(以字节为单位)。默认值:4194304(4GB)。

txnLogSizeLimitInKb:事务日志的总大小。默认情况下不起用。

maxCnxns:指定每个zookeeper服务器的最大连接数,默认值是0,表示不限制连接数。

maxClientCnxns:限制由IP地址标识的单个客户机可以对ZooKeeper集合的单个成员进行的并发连接数。默认值是60。如果设置为0,表示不限制。

clientPortAddress:zookeeper 3.3.0版本后启动,用以指定客户端连接的IP地址。默认情况下,所有的IP的都可以用来接受连接。

minSessionTimeout:zookeeper 3.3.0版本后启动,服务器允许客户端协商的最小会话超时(毫秒)。默认是2个 tickTime 时间。

maxSessionTimeout:zookeeper 3.3.0版本后启动,服务器允许客户端协商的最大会话超时(毫秒)。默认是20个 tickTime 时间。

connectionMaxTokens:3.6.0版本新增。此参数定义令牌桶中的最大令牌数。设置为0时,将禁用限制。默认值为0。

connectionTokenFillTime:3.6.0版本新增。此参数定义用connectionTokenFillCount令牌重新填充令牌桶的时间间隔(以毫秒为单位)。默认值为1。

connectionTokenFillCount:3.6.0版本新增。此参数定义每connectionTokenFillTime毫秒添加到令牌桶的令牌数。默认值为1。

connectionFreezeTime: 3.6.0版本新增。此参数定义调整丢弃概率时的间隔(毫秒)。设置为-1时,禁用概率丢弃。默认值为-1。

connectionDropIncrease: 3.6.0版本新增。此参数定义要增加的丢弃概率。节流器检查每个connectionFreezeTime毫秒,如果令牌桶为空,则丢弃概率将增加connectiondroprease。默认值为0.02。

connectionDropDecrease: 3.6.0版本新增。此参数定义下降概率。节流器检查每个connectionFreezeTime毫秒,如果令牌桶中的令牌数超过阈值,则丢弃概率将减少connectionDropDecrease。阈值是connectionMaxTokens*connectionDecreastRatio。默认值为0.002。

connectionDecreaseRatio: 3.6.0版本新增。此参数定义了降低丢弃概率的阈值。默认值为0。

serverCnxnFactory: 指定ServerCnxnFactory实现。这应该设置为NettyServerCnxnFactory,以便使用基于TLS的服务器通信。默认值为NIOServerCnxnFactory。

flushDelay: 延迟刷新提交日志的时间(毫秒)。不影响maxBatchSize定义的限制。默认情况下禁用(值为0)。具有高写速率的群可能会看到吞吐量提高了10-20ms。

maxWriteQueuePollTime: 如果启用了flushDelay,这将确定在没有新请求排队时,在刷新之前等待的时间(以毫秒为单位)。默认设置为flushDelay/3(默认情况下隐式禁用)。

maxBatchSize: 触发提交日志刷新之前服务器中允许的事务数。不影响flushDelay定义的限制。默认值为1000。

requestThrottleLimit: 3.6.0版本新增。请求限制程序开始暂停之前允许的未完成请求总数。设置为0时,将禁用限制。默认值为0。

requestThrottleStallTime:3.6.0版本新增。线程等待通知它可以继续处理请求的最长时间(毫秒)。默认值为100。

requestThrottleDropStale:3.6.0版本新增。启用时,节流器将丢弃过时的请求,而不是将它们发送到请求管道。默认值为true。

requestStaleLatencyCheck:3.6.0版本新增。启用时,如果请求延迟高于其关联的会话超时,则认为请求已过时。默认情况下禁用。

requestStaleConnectionCheck: 3.6.0版本新增。启用时,如果请求的连接已关闭,则该请求被视为过时。默认启用。

enableEagerACLCheck:当设置为“true”时,在将请求发送到仲裁之前,对每个本地服务器上的写请求启用ACL检查。默认值为“false”。

maxConcurrentSnapSyncs:一个引导者或跟随者可以同时服务的最大快照同步数。默认值为10。

maxConcurrentDiffSyncs
一个引导者或跟随者可以同时服务的最大差异同步数。默认值为100。

largeRequestMaxBytes:3.6.0版本新增。请求的最大字节数。默认值为10010241024。

largeRequestThreshold:3.6.0版本新增。将请求视为大请求的大小阈值。如果是-1,那么所有请求都被认为是小的,有效地关闭了大请求限制。默认值为-1。

electionAlg:选择要使用的实现。值“1”对应于未经身份验证的基于UDP的快速领导人选举版本,“2”对应于经身份验证的基于UDP的快速领导人选举版本,“3”对应于基于TCP的快速领导人选举版本。算法3在3.2.0中是默认的,以前的版本(3.0.0和3.1.0)也使用算法1和2。

initLimit:允许追随者连接并同步到领导者的时间量,单位为ticks(请参阅tickTime)。如果ZooKeeper管理的数据量很大,则根据需要增加此值。

connectToLearnerMasterLimit:允许追随者在领导人选举后连接到领导人的时间量,单位为ticks(请参阅tickTime)。默认为initLimit的值。当initLimit很高时使用,这样连接到领导者不会导致更高的超时。

leaderServes:Leader接受客户端连接。默认值为“是”。

server.x=[hostname]:nnnnn[:nnnnn]:组成ZooKeeper集合的服务器。当服务器启动时,它通过在数据目录中查找文件myid来确定它是哪个服务器。该文件包含服务器编号(ASCII),并且它应该与此设置左侧的server.x中的x匹配。组成客户端使用的ZooKeeper服务器的服务器列表必须与每个ZooKeeper服务器的ZooKeeper服务器列表匹配。有两个端口号nnnnn。第一个追随者用来连接领导人,第二个是领导人选举。如果您想在一台机器上测试多个服务器,那么可以为每个服务器使用不同的端口。由于ZooKeeper 3.6.0,可以为每个ZooKeeper服务器指定多个地址(请参阅ZooKeeper-3188)。要启用此功能,必须设置多地址.enabled将配置属性设置为true。这有助于提高可用性,并为ZooKeeper增加网络级别的恢复能力。当服务器使用多个物理网络接口时,ZooKeeper能够绑定所有接口并在运行时切换到一个工作接口,以防出现网络错误。可以在配置中使用管道(“|”)字符指定不同的地址。使用多个地址的有效配置如下所示:

server.1=zoo1-net1:2888:3888|zoo1-net2:2889:3889
server.2=zoo2-net1:2888:3888|zoo2-net2:2889:3889
server.3=zoo3-net1:2888:3888|zoo3-net2:2889:3889

syncLimit:允许跟随者与ZooKeeper同步的时间量,单位为ticks(请参阅tickTime)。如果追随者远远落后于领导者,他们就会被抛弃。

cnxTimeout:设置为领导者通知打开连接的超时值,默认时间是5秒。

standaloneEnabled:3.5.0版本新增。当设置为false时,单个服务器可以在复制模式下启动,单个参与者可以与观察者一起运行,集群可以向下配置到一个节点,然后从一个节点向上配置。对于向后兼容性,默认值为true。

reconfigEnabled:3.5.3版本新增。这控制动态重新配置功能的启用或禁用。启用该功能后,用户可以通过ZooKeeper客户端API或ZooKeeper命令行工具执行重新配置操作,前提是用户有权执行此类操作。当功能被禁用时,任何用户(包括超级用户)都不能执行重新配置。任何重新配置的尝试都将返回错误。默认值为false。

tcpKeepAlive:将此设置为true将在仲裁成员用于执行选举的套接字上设置TCP keepAlive标志。这将允许仲裁成员之间的连接在网络基础设施中断时保持正常。对于长时间运行或空闲连接,某些NAT和防火墙可能会终止或失去状态。启用此选项依赖于操作系统级别的设置才能正常工作,有关详细信息,请检查操作系统中有关TCP keepalive的选项。默认为false。

electionPortBindRetry:属性设置Zookeeper服务器绑定引线选择端口失败时的最大重试次数。默认值3。设置为0(无限重试)。

forceSync:在完成更新处理之前,需要将更新同步到事务日志的媒体。如果此选项设置为“否”,ZooKeeper将不要求将更新同步到媒体。

jute.maxbuffer:它指定可以存储在znode中的数据的最大大小。单位为:字节。默认值为0xfffff(1048575)字节,或略低于1M。
如果更改此选项,则必须在所有服务器和客户端上设置系统属性,否则会出现问题。
当客户端的jute.maxbuffer的值比服务端大,客户端发送了一个超过服务器jute.maxbuffer的数据,服务端会提示java.io.IOException: Len error异常。
当客户端的jute.maxbuffer值比服务端的小,当客户端从服务端读取的数据大于客户端jute.maxbuffer的值,客户端会得到异常:java.io.IOException: Unreasonable length or Packet len is out of range
在生产环境中,由于以下原因,不建议将此属性增加到超过默认值:
大数据量的znode会导致不必要的延迟峰值,降低吞吐量
大数据量的znode使得leader和follower之间的同步时间不可预测且不收敛(有时超时),导致仲裁不稳定

zookeeper.nio.numSelectorThreads:3.5.0版本新增。NIO选择器线程数。至少需要1个选择器线程。对于大量的客户端连接,建议使用多个选择器。默认值是cpu核心数/2。

zookeeper.nio.numWorkerThreads:3.5.0版本新增。NIO工作线程数。如果配置了0个工作线程,那么选择器线程直接执行套接字I/O。默认值是cpu核心数的2倍。

zookeeper.commitProcessor.numWorkerThreads:3.5.0版本新增。提交处理器工作线程数。如果配置了0个工作线程,则主线程将直接处理请求。默认值是cpu核心数。

znode.container.checkIntervalMs:3.6.0版本新增。候选容器和ttl节点的每次检查的时间间隔(以毫秒为单位)。默认值为“60000”。

znode.container.maxPerMinute: 3.6.0版本新增。每分钟可删除的最大容器和ttl节点数。这样可以防止在删除容器时出现羊群现象。默认值为“10000”。

znode.container.maxNeverUsedIntervalMs: 从未包含任何子级的容器保留的最大间隔(毫秒)。应该足够长,以便您的客户机创建容器,执行任何需要的工作,然后创建子级。默认值为“0”,用于指示从未有任何子级的容器不会被删除。

admin.portUnification:3.6.0版本新增。启用管理端口以接受HTTP和HTTPS通信。默认为禁用。

admin.enableServer:3.5.0版本新增。设置为“false”以禁用AdminServer。默认情况下,AdminServer处于启用状态。

admin.serverAddress:3.5.0版本新增。嵌入式Jetty服务器侦听的地址。默认为0.0.0.0。

admin.serverPort:3.5.0版本新增。嵌入式Jetty服务器侦听的端口。默认为8080。

admin.idleTimeout:3.5.0版本新增。设置连接在发送或接收数据之前可以等待的最大空闲时间(毫秒)。默认为30000毫秒。

admin.commandURL:用于相对于根URL列出和发出命令的URL。默认为“/command”。


熙熙
15 声望1 粉丝

不年轻的码农……