由于我在学习ZooKeeper的阶段中,ZooKeeper都部署在虚拟机里了,心想着我就不配hosts了吧,反正虚拟机早晚要删掉。然后用java连接ZooKeeper就报错了,报:
连接不上的错误
解决方案:
使用管理员权限打开 C:\Windows\System32\drivers\etc\hosts文件,添加ZooKeeper部署的服务器ip,然后保存。(必须使用管理员权限,不然无法保存)
如果还是报连接失败,可以按照以下步骤:
1、ping ZooKeeper服务器的ip地址,看看是否能够连通服务器
2、查看ZooKeeper服务器的防火墙,是否客户端端口被防火墙拦截了(可使用:service firewalld stop彻底关闭CentOS的防火墙)
3、确定ZooKeeper客户端的连接端口,是否是端口写错了,具体查看zoo.cfg中的clientPort=2181
4、查看ZooKeeper服务器的状态,查看其是否正常运行,查看方法:
{ZooKeeper安装路径}/bin/zkServer.sh status
如果出现Mode:{foller/leader/standalone}说明ZooKeeper启动是正常的,若出现报错,或者找不到服务,说明ZooKeeper服务端就没有启动成功
下面是测试代码
ZooKeeper 需要导入依赖,本篇使用的是gradle
implementation group: ‘org.apache.zookeeper’, name: ‘zookeeper’, version: ‘3.5.7’
implementation group: ‘org.apache.logging.log4j’, name: ‘log4j-core’, version: ‘2.8.2’