一、问题分析和代码跟踪

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

java.lang.IllegalStateException: zookeeper not connectedat org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient.<init>(CuratorZookeeperClient.java:83) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperTransporter.createZookeeperClient(CuratorZookeeperTransporter.java:26) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.remoting.zookeeper.support.AbstractZookeeperTransporter.connect(AbstractZookeeperTransporter.java:70) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter$Adaptive.connect(ZookeeperTransporter$Adaptive.java) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport.<init>(ZookeeperMetadataReport.java:61) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReportFactory.createMetadataReport(ZookeeperMetadataReportFactory.java:37) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory.getMetadataReport(AbstractMetadataReportFactory.java:49) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.metadata.report.MetadataReportFactory$Adaptive.getMetadataReport(MetadataReportFactory$Adaptive.java) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.metadata.report.MetadataReportInstance.init(MetadataReportInstance.java:49) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.config.bootstrap.DubboBootstrap.startMetadataReport(DubboBootstrap.java:630) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.config.bootstrap.DubboBootstrap.initMetadataService(DubboBootstrap.java:716) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.config.bootstrap.DubboBootstrap.initialize(DubboBootstrap.java:517) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.config.bootstrap.DubboBootstrap.start(DubboBootstrap.java:744) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener.onContextRefreshedEvent(DubboBootstrapApplicationListener.java:59) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener.onApplicationContextEvent(DubboBootstrapApplicationListener.java:52) ~[dubbo-2.7.7.jar:2.7.7]at org.apache.dubbo.config.spring.context.OneTimeExecutionApplicationContextEventListener.onApplicationEvent(OneTimeExecutionApplicationContextEventListener.java:40) ~[dubbo-2.7.7.jar:2.7.7]at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:898) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:554) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]at com.tom.bootdubboorderprovider.BootDubboOrderProviderApplication.main(BootDubboOrderProviderApplication.java:12) [classes/:na]
Caused by: java.lang.IllegalStateException: zookeeper not connectedat org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient.<init>(CuratorZookeeperClient.java:80) ~[dubbo-2.7.7.jar:2.7.7]... 30 common frames omitted2020-06-29 23:20:58.928  INFO 5200 --- [           main] .b.c.e.AwaitingNonWebApplicationListener :  [Dubbo] Current Spring Boot Application is about to shutdown...
2020-06-29 23:20:58.935  INFO 5200 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
2020-06-29 23:20:58.935  INFO 5200 --- [           main] f.a.ReferenceAnnotationBeanPostProcessor : class org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor was destroying!Process finished with exit code 1

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

跟进方法,可以看到他在不断循环等待连接成功,若在最大等待时间内连接上,则返回true,否则false

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

二、继续深入

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

根据关键字发现,可能跟 metadata-report 的设置有关,且 timeout 有个默认值 5 秒

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

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

三、修改配置文件

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

四、重试 => 翻车

重试依旧报错,查看

再去找配置文件

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

【Zookeeper】zookeeper not connected相关推荐

  1. 【从入门到放弃-ZooKeeper】ZooKeeper实战-分布式队列

    前言 上文[从入门到放弃-ZooKeeper]ZooKeeper入门中,我们学习了ZooKeeper的简单安装和cli使用. 接下来我们开始基于java API的实战编程.本文先来写一个分布式队列的代 ...

  2. 【zookeeper】zookeeper 的监听机制

    文章目录 1.概述 2. shell案例 1.概述 视频:zookeeper znode 存储系统解密 上一篇文章:[zookeeper]zookeeper znode 存储系统解密 许多大数据组件都 ...

  3. 【分布式】ZooKeeper论文总结

    文章目录 1. ZK是什么 1.1 简介 1.2 作用 1.3 应用场景 2. ZK的关键技术 2.1 共识算法和一致性 2.1.1 强一致性 2.1.1.1 顺序一致性 2.1.1.2 线性一致性 ...

  4. 【Flink】Zookeeper connection loss leads to Flink job restart

    1.概述 转载:添Zookeeper connection loss leads to Flink job restart 看这个之前可以先看看:[Flink]Flink 报错 ResourceMan ...

  5. zookeeper安装_【Zookeeper】zookeeper的安装与调试

    一.问题 1.1.环境 电脑环境:Windows 7: JDK环境: Jdk1.8: zookeeper版本:3.5.6 1.2.问题 使用zookeeper已经有一段时间了,那么如何安装和调试呢? ...

  6. 【Zookeeper】zookeeper客户端KeeperErrorCode = ConnectionLoss

    1.概述 今天执行进去zk shell想执行一个命令,结果直接报错 zookeeper]bin/zkCli.sh 0] ls / 然后直接报错如下 org.apache.zookeeper.Keepe ...

  7. 【转】ZooKeeper学习第二期--Zookeeper命令操作

    一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息.用户在客户端可以通过telnet或n ...

  8. 【6】Zookeeper脚本及API

    一.客户端脚本 1.1.客户端连接 cd /usr/local/services/zookeeper/zookeeper-3.4.13/bin ##连接本地Zookeeper服务器 sh zkCli. ...

  9. 【zookeeper】zookeeper shell 删除路径 卡死

    本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 文章目录 1.概述 1.概述 故事是这样的,在哪个遥远遥远的时代,当时人神公愤. 我竟然没有完成这篇博客 ...

  10. 【zookeeper】zookeeper伪集群模式

    1.安装三台zookeeper lcc@lcc zookeeper$ pwd /Users/lcc/soft/zookeeper lcc@lcc zookeeper$ ll total 85232 d ...

最新文章

  1. 跨域以及一些解决方法
  2. 一文读懂Https的安全性原理、数字证书、单项认证、双项认证等
  3. 15-07-05 语句-跳转语句异常语句
  4. python编码规范手册-python之(8)Python编码规范整理
  5. How UI5 and FIORI deliver central Javacript library code MIME
  6. Visual Studio中使用Git Flow
  7. 龙贝格方法c语言,龙贝格算法
  8. android必看java_Android开发工程师必看笔试题:Java基础选择题(一)
  9. 源码安装php时出现configure: error: xml2-config not found. Please check your libxml2 installation...
  10. 微软打造Unity开发工具包 为视力低落的用户增加辅助功能
  11. tkinter canvas绘图全攻略(图形项、配置参数和案例详解)
  12. 网站打不开怎么检查服务器,检查网站打不开的三种原因
  13. 目前最火热的创新创业项目有哪些?
  14. 大学计算机与人工智能基础课后答案,好书推荐 | 人工智能基础及应用
  15. 发一个自己常用的通信词汇缩写表(实时更新)
  16. JAVA代码实现人物照片的人像分割 | 百度AI
  17. 推荐系统深度学习篇-NFM 模型介绍(1)
  18. trinity运行原理及常见报错(一)
  19. 菜鸟学数据库——超键、候选键、主键、外键
  20. 计算机在剪辑方面的应用,简论计算机多媒体技术在影视后期制作中的应用

热门文章

  1. 计算机原理探险系列(九)CPU调度机制
  2. 亲爱的,你已经连阅读理解都做不过AI了
  3. 下载的PPT模板有水印怎么去除?
  4. CRC的计算过程你真的搞明白了吗??
  5. 小米2013校园招聘笔试题
  6. 曾国藩九言,读必收益甚多。 ​
  7. 【沐风老师】3dmax一键窗户生成器插件使用方法详解
  8. MSU2020放榜了
  9. 跟着CTF-Wiki学pwn|格式化字符串(1)
  10. [IOS]Xcode各版本官方下载及百度云盘下载, Mac和IOS及Xcode版本历史