本文已参与「新人创作礼」活动.一起开启掘金创作之路。
附录:
单机选项:
dataLogDir :(无Java系统属性)此选项将指示计算机将事务日志写入dataLogDir而不是dataDir。这允许使用专用的日志设备,并有助于避免日志记录和快照之间的竞争。注意拥有专用的日志设备会对吞吐量和稳定的延迟产生很大影响。强烈建议专用日志设备并将dataLogDir设置为指向该设备上的目录,然后确保将dataDir指向不驻留在该设备上的目录。globalOutstan
dingLimit :( Java系统属性:zookeeper.globalOutstandingLimit。)客户端可以比ZooKeeper更快地提交请求,特别是如果有很多客户端。为防止ZooKeeper因排队请求而耗尽内存,ZooKeeper将限制客户端,以便系统中只有globalOutstandingLimit未完成的请求。默认限制为1,000。
preAllocSize :( Java系统属性:zookeeper.preAllocSize)为了避免搜索,ZooKeeper以preAllocSize千字节为单位在事务日志文件中分配空间。默认块大小为64M。更改块大小的一个原因是,如果更频繁地拍摄快照,则减小块大小。(另请参阅snapCount)。Sn
apCount :( Java系统属性:zookeeper.snapCount)ZooKeeper使用快照和事务日志记录其事务(考虑预写日志)。在获取快照之前记录在事务日志中的事务数(并且事务日志已滚动) )由snapCount决定。为了防止仲裁中的所有计算机同时拍摄快照,每个ZooKeeper服务器将在事务日志中的事务数达到[snapCount / 2 + 1]中的运行时生成的随机值时拍摄快照,snapCount] range。默认snapCount为100,000。
maxClientCnxns :(无Java系统属性)限制由IP地址标识的单个客户端可能对ZooKeeper集合的单个成员进行的并发连接数(在套接字级别)。这用于防止某些类别的DoS攻击,包括文件描述符耗尽。默认值为60.将此值设置为0将完全删除并发连接的限制。clientPortAddress:3.3.0中的新增内容:侦听客户端连接的地址(ipv4,ipv6或hostname); 也就是客户端尝试连接的地址。这是可选的,默认情况下我们以这样的方式绑定,即接受服务器上任何地址/接口/ nic 的clientPort的任何连接。minSessionTi
meout :(无Java系统属性)3.3.0中的新增内容:服务器允许客户端协商的最小会话超时(以毫秒为单位)。默认为tickTime的 2倍。
maxSessionTimeout :(无Java系统属性)3.3.0中的新增内容:服务器允许客户端协商的最大会话超时(以毫秒为单位)。默认为tickTime的 20倍。
fsync.warningthresholdms :( Java系统属性:zookeeper.fsync.warningthresholdms)3.3.4中的新增内容:只要事务日志(WAL)中的fsync花费的时间超过此值,就会向日志输出警告消息。值以毫秒为单位指定,默认为1000.此值只能设置为系统属性。Autopurge.
snapRetainCount :(无Java系统属性)3.4.0中的新增功能:启用后,ZooKeeper自动清除功能分别在dataDir和dataLogDir中保留autopurge.snapRetainCount最新快照和相应的事务日志,并删除其余日志。默认为3.最小值为3。
autopurge.purgeInterval :(无Java系统属性)3.4.0中的新增内容:必须触发清除任务的时间间隔(以小时为单位)。设置为正整数(1和更高)以启用自动清除。默认为0。
syncEnabled :( Java系统属性:zookeeper.observer.syncEnabled)3.4.6,3.5.0中的新增内容:观察者现在默认记录事务并将快照写入磁盘,就像参与者一样。这减少了重启时观察者的恢复时间。设置为“false”以禁用此功能。默认为“true”
zookeeper.extendedTypesEnabled :(仅限Java系统属性:zookeeper.extendedTypesEnabled)3.5.4中的新增内容:定义为“true”以启用扩展功能,例如创建TTL节点。它们默认是禁用的。重要信息:由于内部限制,启用的服务器ID必须小于255。
zookeeper.emulate353TTLNodes :(仅限Java系统属性:zookeeper.emulate353TTLNodes)3.5.4中的新功能:由于ZOOKEEPER-2901,3.5.4 / 3.6.0版不支持在3.5.3版中创建的TTL节点。但是,通过zookeeper.emulate353TTLNodes系统属性提供了一种解决方法。如果您在ZooKeeper 3.5.3中使用了TTL节点,并且除了zookeeper.extendedTypesEnabled之外,还需要将兼容性设置zookeeper.emulate353TTLNodes设置为“true” 。注意:由于该错误,服务器ID必须为127或更少。此外,最大支持TTL值为1099511627775,小于3.5.3(1152921504606846975)中允许的值
serverCnxnFactory :( Java系统属性:zookeeper.serverCnxnFactory)指定ServerCnxnFactory实现。应将其设置为NettyServerCnxnFactory使用基于TLS的服务器通信。默认是NIOServerCnxnFactory。
集群选项:
electionAlg :(没有Java系统属性)要使用的选举实现。值“1”对应于未经认证的基于UDP的快速领导者选举版本,“2”对应于经认证的基于UDP的快速领导者选举版本,“3”对应于基于TCP的快速领导者选举版本选举。目前,算法3是默认值。注意领导者选举1和2的实施现已弃用。我们打算在下一个版本中删除它们,此时只有FastLeaderElection可用。
initLimit :(无Java系统属性)允许关注者连接并同步到领导者的时间量(以tick为单位)(请参阅tickTime)。如果ZooKeeper管理的数据量很大,则根据需要增加此值。
leaderServes :( Java系统属性:zookeeper。** leaderServes **)Leader接受客户端连接。默认值为“是”。领导者协调更新。为了获得更高的更新吞吐量,只需稍微花费读取吞吐量,就可以将领导者配置为不接受客户端并专注于协调。此选项的默认值为yes,这表示领导者将接受客户端连接。注意:如果集合中有三个以上的ZooKeeper服务器,强烈建议启用领导者选择。server.x = [hostname]:nnnnn [:nnnnn]等
syncLimit :(无Java系统属性)允许关注者与ZooKeeper同步的时间量(以tick为单位)(请参阅tickTime)。如果粉丝落后于领导者,他们就会被淘汰。
group.x = nnnnn [:nnnnn] :(无Java系统属性)启用分层仲裁构造。“x”是组标识符,“=”符号后面的数字对应于服务器标识符。赋值的左侧是以冒号分隔的服务器标识符列表。请注意,组必须是不相交的,并且所有组的并集必须是ZooKeeper集合。你会在这里找到一个例子
weight.x = nnnnn :(无Java系统属性)与“group”一起使用时,它在形成仲裁时为服务器分配权重。这样的值对应于投票时服务器的权重。ZooKeeper的一些部分需要投票,例如领导者选举和原子广播协议。默认情况下,服务器的权重为1.如果配置定义组而不是权重,则将为所有服务器分配值1。你会在这里找到一个例子
cnxTimeout :( Java系统属性:zookeeper。** cnxTimeout **)设置打开领导者选举通知连接的超时值。仅适用于您使用electionAlg 3的情况。注意默认值为5秒。
standaloneEnabled :(无Java系统属性)3.5.0中的新功能:当设置为false时,可以在复制模式下启动单个服务器,单个参与者可以使用观察者运行,并且群集可以重新配置为一个节点,并且从一个节点。对于向后兼容性,默认值为true。可以使用QuorumPeerConfig的setStandaloneEnabled方法或通过将“standaloneEnabled = false”或“standaloneEnabled = true”添加到服务器的配置文件来设置它。
reconfigEnabled :(无Java系统属性)3.5.3中的新增功能:它控制动态重新配置功能的启用或禁用。启用此功能后,用户可以通过ZooKeeper客户端API或ZooKeeper命令行工具执行重新配置操作,前提是用户有权执行此类操作。禁用此功能后,任何用户(包括超级用户)都无法执行重新配置。任何重新配置的尝试都将返回错误。“reconfigEnabled”选项可以设置为“reconfigEnabled = false”或“reconfigEnabled = true”到服务器的配置文件,或使用QuorumPeerConfig的setReconfigEnabled方法。默认值为false。如果存在,则该值应该在整个集合中的每个服务器上保持一致。在某些服务器上将值设置为true而在其他服务器上将其设置为false将导致不一致的行为,具体取决于哪个服务器被选为leader。如果领导者的设置为“reconfigEnabled = true”,则整体将启用重新配置功能。如果领导者的设置为“reconfigEnabled = false”,则整体将禁用重新配置功能。因此,建议在整体中的服务器之间具有“reconfigEnabled”的一致值。
4lw.commands.whitelist :( Java系统属性:zookeeper.4lw.commands.whitelist)3.5.3中的新功能:用户想要使用的逗号分隔的四字母单词命令列表。必须在此列表中放入有效的Four Letter Words命令,否则ZooKeeper服务器将不启用该命令。默认情况下,白名单仅包含zkServer.sh使用的“srvr”命令。默认情况下,禁用其余的四个字母单词命令。以下是启用stat,ruok,conf和isro命令的配置示例,同时禁用其余的Four Letter Words命令:4lw.commands.whitelist=stat, ruok, conf, isro如果您确实需要默认启用所有四个字母单词命令,则可以使用星号选项,这样您就不必在列表中逐个包含每个命令。例如,这将启用所有四个字母单词命令:
4lw.commands.whitelist=*tcpKeepAlive :( Java系统属性:zookeeper.tcpKeepAlive)3.5.4中的新增内容:将此设置为true会在仲裁成员用于执行选举的套接字上设置TCP keepAlive标志。这将允许仲裁成员之间的连接在存在可能以其他方式破坏它们的网络基础结构时保持不变。对于长时间运行或空闲连接,某些NAT和防火墙可能会终止或丢失状态。启用此选项依赖于操作系统级别设置才能正常工作,请查看操作系统有关TCP keepalive的选项以获取更多信息。默认为false。