[问题已处理]-现在zk集群故障Error contacting service. It is probably not running
时间:2023-08-06 15:07:00
导语:线上zk集群挂断,执行status报错Error contacting service. It is probably not running
观察现象:
提示三台服务器Error contacting service. It is probably not running,没有leader和follower
但是端口和过程都在
测试:
试试在本机和其他服务器上telnet 只有偶尔才能连接到2181端口。
排查:
防火墙检查没有问题,服务清单检查没有问题
查看日志,发现连接一直错误,无法连接。怀疑是因为连接数飙升,没有释放。
查看阿里云控制 发现服务器连接数飙升
默认最大连接数60
增加以下配置zoo.cfg
maxClientCnxns=500 # 默认是60 当时配置是0 minSessionTimeout=30000 # 最小客户端session超时时间,默认值2tickTime,单位是毫秒 maxSessionTimeout=60000
修改配置后,依次重启zk,并重启dubbo服务。目前还没有想到更好的办法。急着重启。
三台都要重启。否则就不能选举了。zk最小配置集群。
补充查阅资料:
从以下两种方式解决:
1.代码:打补丁解决zookeeper连接资源,producer.close 、consume.shutdown。 2.配置文件: a.zookeeper默认连接值为60,可适当调大至500。 b.在配置文件中加入会话超时设置conf/zoo.conf最后加上:minSessionTimeout=30000,maxSessionTimeout=60000 会话zookeeper未设定时间的超时,将根据ticktime*(2-20)ms来定 如果以后出现这样的问题,重启应急处理方法zookeeper建议搭建使用集群zookeeper集群管理平台exhibitor, 功能: 1、检测ZK实例并确保它正在运行,具有自重启功能 2.定期备份 3、定期清理ZK日志目录(zookeeper.out) 4、用于查看ZK节点的GUI资源管理器 其实遇到这种情况 99% 都是代码问题,还是找自己的代码问题码问题。增加连接数是明智的方法吗?