java.net.ConnectException: Connection refused: no further information,zookeeper连接不上问题解决

编程入门 行业动态 更新时间:2024-10-26 06:37:10

项目场景:

连接linux虚拟机(32位centos)上的zookeeper时一直连接不上并报错。


问题描述:

报错信息:
java.lang.IllegalStateException: zookeeper not connected
java.ConnectException: Connection refused: no further information


原因分析:

报错信息里面也写的比较明白了:
zookeeper not connected:zookeeper没连上
Connection refused:连接被拒
那到底是为什么没连接上的,个人总结了几种原因:
ip地址或端口号配置错误、不是本机连接zookeeper的话可能是因为防火墙没关、zookeeper没有打开、zookeeper打开了但没有完全打开


解决方案:

1. 查看配置的注册中心ip地址和端口是否正确

<dubbo:registry address="zookeeper://127.0.0.1:2181" />

1.1查看ip地址
Windows系统在cmd窗口输入ipconfig
Linux系统在终端命令窗口输入ifconfig
本机是127.0.0.1

1.2查看zookeeper端口
在rookeeper解压后的目录apache-zookeeper-3.5.6-bin下的conf目录中有一个zoo.cfg文件,打开文件查看,如下2181就是端口号。

 #the port at which the clients will connect
clientPort=2181

2. 如果zookeeper注册中心不在本机,则要查看一下注册中心所在的机器防火墙有没有关闭

Linux查看防火墙状态:service iptables status
Linux关闭防火墙:service iptables stop

3. zookeeper没打开(打开了但没有完全打开)

※打开命令:
Linux系统:./zkServer.sh start
Windows系统:./zkServer.cmd
(注意要在bin目录下执行命令)

※zookeeper启动显示started不一定真正打开了,要去检查一下zookeeper是否打开
※查看状态命令:
Linux系统切入bin目录在终端命令窗口输入./zkServer.sh status
Windows系统在cmd窗口输入netstat -ano查看是否占用2181端口


※如果明明执行了zkServer.sh/zkServer.cmd查看状态却显示没有开启,则要检查一下logs目录下的日志信息,根据报错继续检查zookeeper不能开启的原因。
我的报错原因是·jdk版本太低,我吧jdk版本从1.7换成1.8就好了。

4. 以上都没问题还是报错的话可以试试下面的方式

把设置一个比较大的timeout值,可能是连接超时。

<dubbo:registry address="zookeeper://127.0.0.1:2181" timeout="100000"/>

更多推荐

java.net.ConnectException: Connection refused: no further information,zookeeper连

本文发布于:2023-06-14 00:53:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1419909.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:连接不上   ConnectException   net   java   Connection

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!