【已解决】zookeeper not connected

  • 作者: 凯哥Java(公众号:凯哥Java)
  • 工作小总结
  • 时间:2022-03-17 11:08
  • 3198人已阅读
简介 在使用dubbo的时候,有时候会突然出现【Zookeeper】zookeeper not connected。这是什么原因呢?怎么解决呢?

🔔🔔好消息!好消息!🔔🔔

 如果您需要注册ChatGPT,想要升级ChatGPT4。凯哥可以代注册ChatGPT账号代升级ChatGPT4

有需要的朋友👉:微信号 kaigejava2022

一、问题分析和代码跟踪

原来跑的好好的代码,晚上运行的时候提示连接不上 zookeeper。提示信息如下:

7819bbe9784332155fa5be383e401f7a.png

点开报错信息,跟踪进源码,发现异常的抛出是由于在等待连接返回时的返回值false

375e0cccfc36e0792100533d74eba558.png

跟进方法,可以看到他在不

断循环等待连接成功,若在最大等待时间内连接上,则返回true,否则false

e9640734af33483f6a423734efb121ce.png

综合所述,猜测是由于网络原因,超时所致(毕竟穷逼买的是100多块钱一年的服务器~~~)

 

二、继续深入

猜出了大概原因,如果是超时所致,且使用 dubbo-admin 发现 Zookeeper 运行状态正常,那么只要提高最大等待时间就可以了

5244de659554f8750af6f6e26bc436d3.png

继续跟踪,查找 CuratorZookeeperClient 方法的调用

1413d9b5b213e106ebc321c092536637.png

f303144b8487204316f5b51309a406fc.png

结果很明显,这个 timeout 是从配置文件中读取出来的,若没有,则是 5000 ms

三、修改配置文件

ba3c30f4aeaccff399ed6077422c373c.png

# 设置最大等待时间为10秒
dubbo.metadata-report.timeout=10000

四、重试 => 翻车

重试依旧报错,查看

73511cde20d0d1c6a1695aadc88fa904.png

再去找配置文件

9f1520993467b6fdc67a65dcd8a168e1.png

# 配置中心连接时间改为10秒
dubbo.config-center.timeout=10000

066a9a40dc2af5a00bf43fa52f0711ea.png

96ab2641859dd6a8c0b7fb61dae4a91f.png

TopTop