dubbo-admin连接虚拟机中的zookeeper报错zookeeper not connected

目录

前言

解决过程

总结 


前言

可以优先查看总结看能否解决大家的问题,如果不能解决不需要查看解决过程浪费时间了。

解决过程

该问题卡住我很久,网上大多数文章都是修改配置文件中的连接超时时间,即修改如下内容

dubbo.registry.timeout = 10000
dubbo.metadata-report.timeout= 10000
dubbo.config-center.timeout=10000

但本人测试修改这些配置文件并不会修改dubbo-admin中的连接时间,仍然是默认的连接时间,我们打上断点查看dubbo-admin连接虚拟机中的zookeeper报错zookeeper not connected_第1张图片

 可以看到,仍然是默认的timeout,并没有因为修改配置文件中的超时时间而更改,但是此时我注意到了url这个路径

dubbo-admin连接虚拟机中的zookeeper报错zookeeper not connected_第2张图片

url这个路径来自于dubbo-admin连接虚拟机中的zookeeper报错zookeeper not connected_第3张图片

我们查看formUrl()方法

dubbo-admin连接虚拟机中的zookeeper报错zookeeper not connected_第4张图片

注释部分是我们解决问题的关键,因为在第一张图中,timeout变量的获取就是来自于getParamter()方法,因此我们手动添加一个url属性,将注释打开后,我们可以观察到url自动拼接了如下信息 

dubbo-admin连接虚拟机中的zookeeper报错zookeeper not connected_第5张图片

dubbo-admin连接虚拟机中的zookeeper报错zookeeper not connected_第6张图片

timeout属性也修改为我们设置的值。此时我们执行Applicaton方法发现不会报错zookeeper not connected

dubbo-admin连接虚拟机中的zookeeper报错zookeeper not connected_第7张图片

总结 

因此,问题的关键在于修改url路径,所以我们可以通过修改源代码中的url属性

dubbo-admin连接虚拟机中的zookeeper报错zookeeper not connected_第8张图片

又或是直接修改配置文件中的url路径

admin.registry.address=zookeeper://192.168.116.131:2181?blockUntilConnectedWait=100000&timeout=100000
admin.config-center=zookeeper://192.168.116.131:2181
admin.metadata-report.address=zookeeper://192.168.116.131:2181

以上两种解决方法都可以解决我的zookeeper not connected报错

你可能感兴趣的:(dubbo,zookeeper,linux)