4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
Eurofins DiscoverX(优势品牌)
主营:主营:G蛋白偶联受体,激酶,蛋白酶,核激素受体,细胞因子,转录因子和分泌蛋白。
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
新闻详情
dubbo集成zipkin问题二【Caused by: java.lang.IllegalStateException: zookeeper not connected】_大数据_madman-CSDN博客
来自 : 发布时间:2025-06-14
记录一下Temporary failure in name resolution错误的解决方法 \"\"6585 dubbo集成zipkin问题二【Caused by: java.lang.IllegalStateException: zookeeper not connected】

dubbo集成zipkin官网博客地址

在 Dubbo 中使用 Zipkin

遇到的问题

运行官网的demo报错zookeeper not connected,链接不上zookeeper,开始以为是zookeeper的版本和项目依赖的版本不一致,改了几个版本之后还是不行,然后在本机启动了一个zookeeper,使用127.0.0.1:2181来链接,发现可以链接成功(demo和zookeeper运行在一起的时候链接挺快的,没啥问题),检查了zookeeper的地址确实没错。

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name \'helloService\': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: zookeeper not connected at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:177) at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103) at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1640) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351) ... 15 moreCaused by: java.lang.IllegalStateException: zookeeper not connected at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient. init (CuratorZookeeperClient.java:83) at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperTransporter.createZookeeperClient(CuratorZookeeperTransporter.java:26) at org.apache.dubbo.remoting.zookeeper.support.AbstractZookeeperTransporter.connect(AbstractZookeeperTransporter.java:70) at org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter$Adaptive.connect(ZookeeperTransporter$Adaptive.java) at org.apache.dubbo.configcenter.support.zookeeper.ZookeeperDynamicConfiguration. init (ZookeeperDynamicConfiguration.java:70) at org.apache.dubbo.configcenter.support.zookeeper.ZookeeperDynamicConfigurationFactory.createDynamicConfiguration(ZookeeperDynamicConfigurationFactory.java:37) at org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory.lambda$getDynamicConfiguration$0(AbstractDynamicConfigurationFactory.java:39) at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) at org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory.getDynamicConfiguration(AbstractDynamicConfigurationFactory.java:39) at org.apache.dubbo.common.config.configcenter.DynamicConfiguration.getDynamicConfiguration(DynamicConfiguration.java:223) at org.apache.dubbo.config.bootstrap.DubboBootstrap.prepareEnvironment(DubboBootstrap.java:857) at org.apache.dubbo.config.bootstrap.DubboBootstrap.startConfigCenter(DubboBootstrap.java:603) at org.apache.dubbo.config.bootstrap.DubboBootstrap.useRegistryAsConfigCenterIfNecessary(DubboBootstrap.java:671) at org.apache.dubbo.config.bootstrap.DubboBootstrap.initialize(DubboBootstrap.java:509) at org.apache.dubbo.config.bootstrap.DubboBootstrap.init(DubboBootstrap.java:494) at org.apache.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:190) at org.apache.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:158) at org.apache.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:68) at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:170) ... 20 moreCaused by: java.lang.IllegalStateException: zookeeper not connected at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient. init (CuratorZookeeperClient.java:80) ... 38 more参考解决方案

记一次dubbo连接zookeeper注册中心发生异常的排查经历这个文章里面的错误和上面的错误一样,参考他的解决方案可以解决,这里记录一下报错的原因是什么。

问题分析第一步

根据报错信息和异常信息,报错信息在CuratorZookeeperClient.java:80的80行,报错的原因从代码上看就是zookeeper链接不上。之前确认了zookeeper地址、版本啥的确实没错,看方法看到这里有一个timeout属性,debug来看一下。\"在这里插入图片描述\"debug之后发现这里的超时时间是3000,也就是3秒钟,估计3秒钟太短了,所以导致链接不上。\"在这里插入图片描述\"然后通过代码得到timeout这个属性是从url里面获取的,url里面的timeout属性就是3000 。

zookeeper://192.168.1.78:2181/ConfigCenterConfig?check=true config-file=dubbo.properties group=dubbo highest-priority=false timeout=3000

知道超时时间是从url里面来的,然后就是看url是怎么来的。

通过调用的堆栈信息找到DubboBootstrap这里类的useRegistryAsConfigCenterIfNecessary的这个方法,这里会判断配置管理器有没有ConfigCenterConfig这个配置,如果没有,就会把registryConfig的一些属性赋值给一个新建的ConfigCenterConfig,在554行的位置会判断有没有timeout这个属性,如果有就获取这里的timeout,如果没有就使用默认的,ConfigCenterConfig这个类默认的private Long timeout = 3000L;就是3000L.

\"在这里插入图片描述\"知道这个timeout怎么来的,然后对其进行相对应的修改就可以了。

修改方法方法一

在dubbo:registry标签添加一个timeout属性就可以。

dubbo:registry address=\"zookeeper://${zookeeper.address:192.168.1.78}:2181\" timeout=\"25000\"/ 方法二

添加一个dubbo:config-center的标签,设置 timeout属性。

dubbo:config-center timeout=\"23000\" /dubbo:config-center

demo都是基于xml来实现的。

本文链接: http://discoverx.immuno-online.com/view-1517410038.html

发布于 : 2025-06-14 阅读()