最小配置
-
clientPort 监听客户端连接的端口
-
dataDir 内存数据库快照存放地址,如果没有指定事务日志存放地址(dataLogDir),默认也是存放在这个路径下,建议两个地址分开存放到不同的设备上。
-
tickTime 心跳基本时间单位,毫秒级,ZK基本上所有的时间都是这个时间的整数倍。
高级配置(可选,有的需要直接通过系统属性进行设置)
-
dataLogDir 将事务日志存储在该路径下,比较重要,这个日志存储的设备效率会影响ZK的写吞吐量。
-
globalOutstandingLimit (Java system property: zookeeper.globalOutstandingLimit)默认值是1000,限定了所有连接到服务器上但是还没有返回响应的请求个数(所有客户端请求的总数,不是连接总数),这个参数是针对单台服务器而言,设定太大可能会导致内存溢出。
-
preAllocSize (Java system property: zookeeper.preAllocSize)默认值64M,以KB为单位,预先分配额定空间用于后续transactionlog 写入,每当剩余空间小于4K时,就会又分配64M,如此循环。如果SNAP做得比较频繁(snapCount比较小的时候),那么请减少这个值。
-
snapCount (Java system property: zookeeper.snapCount)默认值100,000,当transaction每达到snapCount/2+rand.nextInt(snapCount/2)时,就做一次SNAPSHOT,默认情况下是50,000~100,000条transactionlog就会做一次,之所以用随机数是为了避免所有服务器可能在同一时间做snapshot.
-
traceFile (Java system property: requestTraceFile)
-
maxClientCnxns 默认值是10,一个客户端能够连接到同一个服务器上的最大连接数,根据IP来区分。如果设置为0,表示没有任何限制。设置该值一方面是为了防止DoS攻击。
-
clientPortAddress 与clientPort匹配,表示某个IP地址,如果服务器有多个网络接口(多个IP地址),如果没有设置这个属性,则clientPort会绑定到所有IP地址上,否则只绑定到该设置的IP地址上。
-
minSessionTimeout 最小的session time时间,默认值是2个tick time,客户端设置的session time 如果小于这个值,则会被强制协调为这个最小值。
-
maxSessionTimeout 最大的session time 时间,默认值是20个tick time. ,客户端设置的session time 如果大于这个值,则会被强制协调为这个最大值。
集群配置选项
-
electionAlg 领导选举算法,默认是3(fast leader election,基于TCP),0表示leader选举算法(基于UDP),1表示非授权快速选举算法(基于UDP),2表示授权快速选举算法(基于UDP),目前1和2算法都没有应用,不建议使用,0算法未来也可能会被干掉,只保留3(fast leader election)算法,因此最好直接使用默认就好。
-
initLimit tickTime的个数,表示在leader选举结束后,followers与leader同步需要的时间,如果followers比较多或者说leader的数据灰常多时,同步时间相应可能会增加,那么这个值也需要相应增加。当然,这个值也是follower和observer在开始同步leader的数据时的最大等待时间(setSoTimeout)
-
syncLimit tickTime的个数,这时间容易和上面的时间混淆,它也表示follower和observer与leader交互时的最大等待时间,只不过是在与leader同步完毕之后,进入正常请求转发或ping等消息交互时的超时时间。
-
leaderServes (Java system property: zookeeper.leaderServes) 如果该值不是no,则表示该服务器作为leader时是需要接受客户端连接的。为了获得更高吞吐量,当服务器数三台以上时一般建议设置为no。
-
cnxTimeout (Java system property: zookeeper.cnxTimeout) 默认值是5000,单位ms 表示leaderelection时打开连接的超时时间,只用在算法3中。
不安全配置项
分享到:
相关推荐
zookeeper学习笔记
Zookeeper3.5.1(源码解析)
zookeeper_demo maven项目:包含原生API、zkclient、Curator操作,并包含集群、分布锁等操作
Zookeeper学习笔记
zookeeper-3.4.5-cdh5.4.0.jar
windows系统上关于zookeeper集群的可视化工具,就像本地文件系统一样访问zookeeper集群上的各个节点,大大的提高了工作效率
自己整理的ZooKeeper学习笔记,适合刚刚接触ZooKeeper的人学习
java ZooKeeper学习笔记\ZooKeeper原理、运用
- 概述 - 术语 - 分布式应用 - 介绍 - 架构 - 工作流 - Leader选举 - 安装服务 - CLI 操作 - java-api - 动态感知服务器上下线 - 实现Hadoop高可用(Hadoop-HA-High Availability)
ZooKeeper可视化界面软件:ZooInspector压缩包
由于ZooKeeper的开源特性,后来我们的开发者在分布式锁的基础上,摸索了出了其他的使用方法:**配置维护、组服务、分布式消息队列**、**分布式通知/协调**等。ZooKeeper在实现这些服务时,首先它设计一种新的**数据...
在RHEL / CentOS 7上安装和配置Apache ZooKeeper的角色。 该角色可用于安装和群集多个ZooKeeper节点,默认情况下,它将使用为清单文件中的“ zookeeper-nodes”组定义的所有主机。 所有服务器以及领导者和选举端口...
角色:ZooKeeper Ansible角色,用于管理安装和配置。 角色变量 下面列出了可用的变量以及默认值(请参见defaults/main.yml ): zookeeper_version: 3.6.2 ZooKeeper应用程序版本。 zookeeper_dir: /opt/...
Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储, Zookeeper 作用主要是用来维护和监控存储的数据的状态变化,通过...
zookeeper-3.4.9.jar ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置...
ZooKeeper 由雅虎研究院开发,后来捐赠给了 Apache。ZooKeeper 是一个开源的分布式 应用程序协调服务器,其为分布式系统提供一致性服务。其一致性是通过基于 Paxos 算法的 ZAB 协议完成的。其主要功能包括:配置维护...
Zookeeper可以进行集群的配置管理,名字服务,分布式锁,集群管理等等
尚硅谷2021 zookeeper 笔记
本文适合但不限于软件开发人员阅读。本文档能够使阅读者对zookeeper有一个宏观且全面的了解,内容主要包含zookeeper架构、数据模型、读写及工作原理、典型应用场景、指令汇总等,
zookeeper默认使用zoo.cfg配置文件 b.启动 在zookeeper 目录下输入指令: bin/zkServer.sh start 这个命令使得zk服务进程在后台进行。如果想在前台中运行以便查看服务器进程的输出日志,可以通过以下命令运行: bin/...