今天日常更新内网(LINUX服务器)项目,准备进行测试。出现一个意料之外的错误,提示说项目连接zookeeper失败。一直在尝试进行重连。

	最后问题解决了,在此分享下处理问题的过程和经验。


	前面各种重试的逗比操作就不跟你们聊了。。。。。

	正文来了。
	总结下网上的说法,项目连接zookeeper失败的几种可能,
	1.zookeeper服务挂了,一般情况下不会,而且这种情况也挺容易发现的。建议出现连接失败后第一反应是想查看zookeeper服务。
	
	2.连接数过多。(我就是这种情况)

	先说怎么查看连接数。
	netstat -na | grep 2181 | wc -l
	执行上述命令后可以看到当前服务器连接2181的链接数(如果zookeeper端口不是2181的请自行修改命令)

	netstat -na | grep 2181
	这个命令是查看具体连接的详细情况

在这里插入图片描述

	一般zookeeper默认的单个IP服务器的连接数是60,这就可以确认是不是连接数过多导致的问题。


	连接数过多的问题有两种解决方案。
	1.修改zookeeper的zoo.conf配置文件中的maxClientCnxns配置。没有的可以加上,附上这个配置的详解
	maxClientCnxns:默认为60,不支持以系统属性方式配置。从Socket层面限制单个客户端与单台服务器之间的并发连接数,即以ip地址来进行连接数的限制。如果设置为0,表示不做任何限制。仅仅是单台客户端与单个Zookeeper服务器连接数的限制,不能控制所有客户端的连接数总和。

	2.用netstat -na | grep 2181命令查询当前连接的程序,无用的全部的kill掉。如果都是要用的,就去修改zookeeper的配置来实现

给后人少走弯路的经验,有兴趣的可以留言讨论下。不喜勿喷!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐