org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /XXX

这几天都在学习zookeeper,这个难呀,因为对于Linux特别不熟悉,等同于盲区,所以学起来很困难,基本就是视频,软件 ,百度,三者直接切换,真的一波三折

先上我跟着视频敲得代码:

    //要连接的zookeeper
    private String connectString="192.162.2.135:2181,192.168.2.248:2181,192.168.2.123:2181";
    private int sessionTimeout =10000; //超时时间
    private ZooKeeper zkCli;

    @Before
    public void init() throws IOException {
             zkCli = new ZooKeeper(connectString, sessionTimeout, new Watcher() {


            public void process(WatchedEvent watchedEvent) {

            }
        });
    }

    @Test
    public void create() throws KeeperException, InterruptedException {
        String path = zkCli.create("/test", "yangyi".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        System.out.println(path);
    }

这短短几行代码算是看起来比较简单,,乍一眼看不会报错的那种,但是,他就是偏偏报错了

org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /XXX

报的是上面的错,我百度了好几个跟我一样问题的,但是他们得解决方式,我都排查过,没有问题,总结一下解决方式

  1. 切记:zoo.cfg里面配置的集群服务要和你所要连接的匹配
    在这里插入图片描述
    比如我配置的是这样,那么
private String connectString="192.162.2.135:2181,192.168.2.248:2181,192.168.2.123:2181";

我代码就要是这样

  1. 关闭linux防火墙,我是已经关闭过了,这个关闭防火墙的命令可以自己去百度
  2. 我自己解决,因为上面说到关闭Linux防火墙,我突然想到,我windows得防火墙好像没关,于是我就立马去关了,于是 问题解决了

美们,记得一定要多排查,不要放弃,加油哦

在这里插入图片描述
希望对大家有用,没用自动略过,别喷我技术垃圾,谢谢了嘞~

Logo

更多推荐