Zookeeper 配置参数 – zoo.cfg

By | 2022年8月2日

1. maxClientCnxns

表示并发连接数,默认值是60,设为0则完全消除并发连接的限制。

工作中,就遇到相关问题,由于设备日志量大,需要增加 kafka 分区和 storm 的 spout 数量,当 spout 线程数设置30个,并发去 kafka 上拿数据时,supervisor 报以下 zookeeper 报错:

2022-08-02 16:26:42.913 o.a.s.s.o.a.z.ClientCnxn Thread-232-spout-device-log-topic_TxId-executor[94 94]-SendThread(zookeeper-0.zookeeper.default.svc.cluster.local:2181) [WARN] Session 0x0 for server zookeeper-0.zookeeper.default.svc.cluster.local/2.33.98.202:2181, unexpected error, closing socket connection and attempting reconnect
java.io.IOException: Connection reset by peer
	at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[?:1.8.0_222]
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[?:1.8.0_222]

解决办法很简单,重做docker镜像,设置 maxClientCnxns=0。

2. autopurge.snapRetainCount 和 autopurge.purgeInterval

客户现场发现 zookeeper 日志特别大,后来通过设置以下两个参数得以解决:

# 设置保留多少个snapshot,之前的则删除
autopurge.snapRetainCount=3
# 设置多少小时清理一次
autopurge.purgeInterval=1

客户端在与zookeeper交互过程中会产生非常多的日志,而且zookeeper也会将内存中的数据作为snapshot保存下来,这些数据是不会被自动删除的,导致磁盘中这样的数据就会越来越多,以上两参数就是解决此问题。

发表评论

您的电子邮箱地址不会被公开。