[问题已处理]-现在zk集群故障Error contacting service. It is probably not running

[问题已处理]-现在zk集群故障Error contacting service. It is probably not running,第1张

[问题已处理]-现在zk集群故障Error contacting service. It is probably not running

导语:线上zk集群挂掉了,执行status报错Error contacting service. It is probably not running

观察现象:

3台服务器都提示Error contacting service. It is probably not running,没有leader和follower

但是端口和进程都是在的

测试:

尝试在本机和其他服务器telnet 2181端口,只有偶尔能连上。

排查:

防火墙检查没问题,服务的列表检查没问题

查看日志发现连接这块一直报错无法连接,怀疑是连接数暴涨没有释放的缘故。

查看阿里云控制 发现服务器连接数暴涨

默认最大连接数60

增加以下配置到zoo.cfg

maxClientCnxns=500 # 默认是60 当时配置是0
minSessionTimeout=30000 # 最小的客户端session超时时间,默认值为2个tickTime,单位是毫秒
maxSessionTimeout=60000

修改配置之后依次重启zk,并重启dubbo服务。这里暂时没有想到更好的办法。比较着急就重启了。

3台都要重启。否则没法选举。3台是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% 都是代码问题,还是找一下自己代码问题的好,增加连接数这都是不是什么明智的方法

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5699746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存