org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /
阿新 • • 發佈:2021-01-16
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
報的是上面的錯,我百度了好幾個跟我一樣問題的,但是他們得解決方式,我都排查過,沒有問題,總結一下解決方式
- 切記:zoo.cfg裡面配置的叢集服務要和你所要連線的匹配
比如我配置的是這樣,那麼
private String connectString="192.162.2.135:2181,192.168.2.248:2181,192.168.2.123:2181";
我程式碼就要是這樣
- 關閉linux防火牆,我是已經關閉過了,這個關閉防火牆的命令可以自己去百度
- 我自己解決,因為上面說到關閉Linux防火牆,我突然想到,我windows得防火牆好像沒關,於是我就立馬去關了,於是 問題解決了
美們,記得一定要多排查,不要放棄,加油哦
希望對大家有用,沒用自動略過,別噴我技術垃圾,謝謝了嘞~