| 参数名 | 默认值 | 详解 | 备注 | |
| 基础配置 | 参数名 | 含义说明 | 默认值 | 备注 |
| tickTime | ZooKeeper基本时间单位(毫秒),用于心跳和超时计算 | 2000 | 最小会话超时时间为2*tickTime | |
| dataDir | 数据快照和myid文件存储路径 | - | 必须指定,建议独立磁盘 | |
| clientPort | 客户端连接端口 | 2181 | 核心服务端口 | |
| initLimit | Follower连接Leader并完成同步的最大tick数 | 5 | 集群初始化超时时间 | |
| syncLimit | Leader与Follower心跳超时tick数 | 2 | 网络延迟高时需要调大 | |
| server.x | 集群节点配置:server.id=host:port:port | - | port1是通信端口,port2是选举端口 | |
| 数据存储配置 | dataLogDir | 事务日志存储路径 | dataDir相同路径 | 强烈建议使用独立磁盘以提高性能 |
| preAllocSize | 事务日志预分配大小(KB) | 65536 | 减少磁盘分配开销 | |
| snapCount | 触发快照的事务数阈值 | 100000 | 达到该值后创建新快照 | |
| autopurge.snapRetainCount | 保留的快照数量 | 3 | 自动清理旧快照 | |
| autopurge.purgeInterval | 清理任务间隔(小时) | 1 | 0表示禁用自动清理 | |
| fsync.warningthresholdms | fsync警告阈值(毫秒) | 1000 | 超过该值输出警告日志 | |
| fsync.warningthresholdms | fsync警告阈值(毫秒) | 1000 | 超过该值输出警告日志 | |
| 网络与连接控制 | maxClientCnxns | 单IP最大客户端连接数 | 60(3.5.3前)/2000(3.5.3+) | 防止单个IP耗尽连接 |
| maxCnxns | 单服务器总连接数(不区分IP) | 0(无限制) | 3.5+引入的额外防护 | |
| clientPortAddress | 客户端端口绑定的IP地址 | 0.0.0.0 | 可指定特定网卡 | |
| secureClientPort | SSL安全连接端口 | - | 启用后支持混合模式 | |
| client.portUnification | 客户端端口同时接受SSL连接 | FALSE | 3.5.5+ | |
| admin.serverPort | Admin服务端口 | 8080 | 提供监控接口 | |
| admin.enableServer | 是否启用Admin服务 | TRUE | 可设为false禁用 | |
| zookeeper.serverCnxnFactory | 连接工厂类 | NIOServerCnxnFactory | 使用TLS时需改为NettyServerCnxnFactory | |
| 集群与高可用 | group.x | 节点分组配置(用于分层次选举) | - | 3.5+支持 |
| weight.x | 节点权重配置 | - | 影响选举投票权重 | |
| leaderServes | Leader是否处理客户端请求 | yes | 设为no可提升写入性能 | |
| peerType | 节点类型(observer/participant) | participant | Observer不参与选举 | |
| syncEnabled | Observer是否持久化事务日志 | TRUE | 3.4.6+,设为false可提升性能但增加恢复时间 | |
| multiAddress.enabled | 启用多地址支持 | FALSE | 3.6.0+,提升网络层可用性 | |
| multiAddress.reachabilityCheckTimeoutMs | 多地址可达性检查超时 | 1000ms | 3.6.0+ | |
| 性能调优参数 | globalOutstandingLimit | 全局最大请求队列长度 | 1000 | 防止内存溢出 |
| maxSessionTimeout | 最大会话超时时间(毫秒) | 20*tickTime | 客户端可设置的最大值 | |
| minSessionTimeout | 最小会话超时时间(毫秒) | 2*tickTime | 客户端可设置的最小值 | |
| zookeeper.commitProcessor.numWorkerThreads | CommitProcessor工作线程数 | CPU核心数 | 3.5.0+ | |
| zookeeper.nio.numSelectorThreads | NIO selector线程数 | √(CPU核心数/2) | 3.5.0+,连接数多时增加 | |
| zookeeper.nio.numWorkerThreads | NIO worker线程数 | 2*CPU核心数 | 3.5.0+ | |
| maxBatchSize | 批量提交的最大事务数 | 1000 | 3.6.0+ | |
| flushDelay | 提交日志刷盘延迟(毫秒) | 0(禁用) | 3.6.0+,高写入场景可设为10-20ms | |
| maxWriteQueuePollTime | 刷盘等待时间 | flushDelay/3 | 3.6.0+ | |
| 安全配置 | sslQuorum | 启用集群间SSL加密通信 | FALSE | 3.5.5+,需配合Netty使用 |
| ssl.keyStore.location | SSL密钥库路径 | - | 服务端SSL配置 | |
| ssl.keyStore.password | 密钥库密码 | - | 支持加密密码 | |
| ssl.trustStore.location | SSL信任库路径 | - | 验证客户端证书 | |
| authProvider.x | 认证提供者类 | - | 如SASLAuthenticationProvider | |
| skipACL | 跳过ACL权限检查 | no | 开发环境可设为yes提升性能 | |
| kerberos.removeHostFromPrincipal | Kerberos认证移除主机名 | FALSE | 3.5+ | |
| kerberos.removeRealmFromPrincipal | Kerberos认证移除域 | FALSE | 3.5+ | |
| enforceQuota | 强制配额检查 | FALSE | 3.7.0+,超限拒绝请求 | |
| 监控与管理 | metricsProvider.className | 指标提供者类 | - | 3.6.0+,如PrometheusMetricsProvider |
| metricsProvider.httpPort | 指标服务端口 | 7000 | 3.6.0+ | |
| 4lw.commands.whitelist | 四字命令白名单 | - | 如"stat,ruok,conf",*表示全部启用 | |
| cnxTimeout | Leader选举连接超时 | 5秒 | 选举期间socket超时 | |
| 3.5+动态配置 | dynamicConfigFile | 动态配置文件路径 | - | 3.5.0+,支持运行时修改集群 |
| reconfigEnabled | 启用动态重配置 | FALSE | 3.5.0+ | |
| standaloneEnabled | 启用单机模式 | TRUE | 3.5.0+,设为false防止误启动单节点 | |
| localSessionsEnabled | 启用本地会话 | FALSE | 3.5.0+,减少Leader压力 | |
| localSessionsUpgradingEnabled | 自动升级本地会话 | FALSE | 3.5.0+,需配合localSessionsEnabled | |
| 3.6+新特性 | requestThrottleLimit | 请求限流阈值 | 0(禁用) | 3.6.0+,限制最大未处理请求数 |
| requestThrottleStallTime | 请求等待最大时间 | 100ms | 3.6.0+ | |
| requestThrottleDropStale | 丢弃过期请求 | TRUE | 3.6.0+,连接关闭或超时的请求 | |
| maxConcurrentSnapSyncs | 最大并发快照同步数 | 10 | 3.6.0+ | |
| maxConcurrentDiffSyncs | 最大并发差异同步数 | 100 | 3.6.0+ | |
| 3.7+新特性 | enforce.auth.enabled | 强制客户端认证 | FALSE | 3.7.0+,未认证拒绝操作 |
| enforce.auth.schemes | 强制认证方式列表 | - | 3.7.0+,如sasl,ssl | |
| watchManagerName | Watcher管理器实现 | WatchManager | 3.6.0+,可选WatchManagerOptimized | |
| 3.9+新特性 | ssl.sslProvider | SSL提供者 | JDK | 3.9.0+,可选OpenSSL等原生库 |
重要说明
-
版本差异:不同版本默认值可能变化,如
maxClientCnxns在3.5.3后从60改为2000 -
动态配置:3.5.0+支持动态修改集群成员,无需重启
-
性能关键:
dataLogDir必须独立磁盘,tickTime和syncLimit对稳定性影响大 -
安全配置:生产环境建议启用SASL或SSL,并设置
skipACL=no -
监控建议:3.6.0+务必启用Prometheus指标导出
所有参数均可通过修改conf/zoo.cfg文件并重启服务生效。Java系统属性参数需在启动命令中添加-Dkey=value指定。

被折叠的 条评论
为什么被折叠?



