zookeeper集群模式下报连接数过多问题
应用后台报错zookeeper连接超时,在此之前并没用出现过此类错误,是转成zookeeper集群后才出现的,(最后发现还是代码问题)
在zookeeper.out中出现too many connecttion from ^_^ip :显示我在^_^ip上的某应用请求过度!
[maxClientCnxns]默认值60,对于那些单应用都是足够得,除非是在此集群上部署了十几个应用
首先这个连接数不是针对某个ip的,请注意这个限制的使用范围,
仅仅是单台客户端机器与单台zookeeper服务器之间的连接数限制,(***)
不是针对指定客户端IP,也不是zookeeper集群的连接数限制,
也不是单台zookeeper对所有客户端的连接数限制。
检查下zk
看看2181端口都谁在链接
sudo netstat -nap |grep 2181 发现确实是项目的问题
解决从以下两个方式:
1.代码:打补丁,解决zookeeper连接资源,producer.close 、consume.shutdown。
2.配置文件: a.zookeeper默认连接数值60,可以适当调大至500。
b.在配置文件中加入会话超时设置,在conf/zoo.conf最后加上:minSessionTimeout=30000,maxSessionTimeout=60000
虽然会话zookeeper超时在没有设定时间时会根据ticktime*(2 - 20)ms,来定,但是在实际发现会话在超时后断掉。
ps 若之后还出现此类问题 应急性的处理方式重启zookeeper集群,建议搭建使用zookeeper集群管理平台exhibitor,
功能:
1、检测ZK实例并确保它正在运行,有自行重启功能
2、执行定期备份
3、定期清理ZK日志目录(zookeeper.out)
4、用于查看ZK节点的GUI资源管理器
其实遇到这种情况 99% 都是代码问题,还是找一下自己代码问题的好,增加连接数这都是不是什么明智的方法
nhz94259@163.com