Java基础、中级、高级、架构面试资料

Zookeeper 的配置文件常用配置属性大全

JAVA herman 2314浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

Zookeeper 从诞生之初火爆到今天是有原因的,值得我们每一个网友深入学习!

Zookeeper 提供了强大的 API,或者说是源语集。基于此,我们一般都很容易的能够上手 Zookeeper,但是,想深入研究和学习,对相关的配置文件属性还是有必要一探究竟的。

乘着十一空闲期间,把我常用的一些 Zookeeper 配置属性总结下来,分享给大家!

clientPort:客户端连接server的端口,即对外服务端口,一般设置为2181

dataDir:存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里。建议同时配置参数dataLogDir, 事务日志的写性能直接影响zk性能。

tickTime:ZK中的一个时间单元。ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。例如,session的最小超时时间是2*tickTime

dataLogDir:事务日志输出目录。尽量给事务日志的输出配置单独的磁盘或是挂载点,这将极大的提升ZK性能

globalOutstandingLimit:最大请求堆积数。默认是1000。ZK运行的时候, 尽管server已经 没有空闲来处理更多的客户端请求了,但是还是允许客户端将请求提交到服务器上来,以提高吞吐性能。当然,为了防止Server内存 溢出,这个请求堆积数还是需要限制下的。(Java system property: zookeeper.globalOutstandingLimit.)

preAllocSize:预先开辟磁盘空间,用于后续写入事务日志。默认是64M,每个事务日志大小就是64M。如果ZK的快照频率较大的话,建议适当减小 这个参数。(Java system property: zookeeper.preAllocSize)

snapCount:每进行snapCount次事务日志输出后,触发一次快照(snapshot),此时,ZK会生成一个snapshot.文件,同时创建一个新的事务日志文件log.。 默认是100000.(真正的代码实现中,会进行一定的随机数处理,以避 免 所 有 服 务 器 在 同 一 时 间 进 行 快 照 而 影 响 性 能 )(Java system property: zookeeper.snapCount)

traceFile:用于记录所有请求的log,一般调试过程中可以使用,但是生产环境不建 议使用,会严重影响性能。(Java system property:? requestTraceFile)

maxClientCnxns:单个客户端与单台服务器之间的连接数的限制,是ip级别的,默认是60如果设置为0,那么表明不作任何限制。请注意这个限制的使用范围,仅仅是单台客户端机器与单台ZK服务器之间的连接数限制,不是针对指定客户端IP,也不是ZK集群的连接数限制,也不是单台ZK对所有客户端的 连接数限制。

clientPortAddress:对于多网卡的机器,可以为每个IP指定不同的监听端口。默认情况是所 有IP都监听 clientPort指定的端口。 New in 3.3.0

minSessionTimeou:tmaxSessionTimeout
Session超时时间限制,如果客户端设置的超时时间不在这个范围,那么会被强制设置为最大或最小时间。默认的Session超时时间是在2* tickTime ~ 20 * tickTime 这 个 范 围 New in 3.3.0

fsync.warningthresholdms:事务日志输出时,如果调用fsync方法超过指定的超时时间,那么会在日志中输出警告信息,默认是1000ms

autopurge.purgeInterval:清理任务的时间间隔,单位为hours

autopurge.snapRetainCount:zkserver启动时会开启一个org.apache.zookeeper.server.DatadirCleanupManager的线程,用于清理”过期”的snapshot文件和其相应的txn log file,此参数用于设定需要被retain保留的文件个数(从QuorumPeerMain跟踪代码)

electionAlg:选举算法,默认为3,可以选择(0,1,2,3),    0表示使用原生的UDP(LeaderElection), 1表示使用费授权的UDP 2表示使用授权的UDP(AuthFastLeaderElection)  3基于TCP的快速选举(FastLeaderElection)

initLimit:Leader与learner建立连接中 socket通讯read所阻塞的时间(initLimit * tickTime) 如果是Leaner数量较多或者leader的数量很大, 可以增加此值

SyncLimit:learner与leader建立连接中,socket通讯read阻塞的时间.其中包括数据同步/数据提交等

peerType:zkserver 类型 observer 观察者, participant参与者 ,默认为参与者

leaderServes:系统属性,zookeeper.leaderServes leader是否接受client请求,默认为yes即leader可以接受client的连接,在zk cluster 环境中,当节点数为>3时,建议关闭

cnxTimeout:系统属性,zookeeper.cnxTimeout leader选举时socket连接打开的时长,只有在electionAlg=3有效

skipACL:系统属性:zookeeper.skipACL 默认为no,是否跳过ACL检查

forceSync:系统属性,zookeeper.forceSync 默认yes 在update执行之前,是否强制对操作立即持久写入txn log文件.关闭此选项,会造成服务器失效后,尚未持久化的数据丢失

jute.maxbuffer:每个节点最大数据量,是默认是1M。这个限制必须在server和client 端都进行设置才会生效。

Zookeeper 的常用配置属性大全

这些都是比较常用的配置属性,再使用时,大家要注意对应的版本。版本不通过,配置属性可能略有差异!

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » Zookeeper 的配置文件常用配置属性大全