1. 程式人生 > 其它 >org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /

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

技術標籤:zookeeperjavalinux

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得防火牆好像沒關,於是我就立馬去關了,於是 問題解決了

美們,記得一定要多排查,不要放棄,加油哦

在這裡插入圖片描述
希望對大家有用,沒用自動略過,別噴我技術垃圾,謝謝了嘞~