起因,想起來分布式鎖也是常考的知識點,自己還不是太熟,就想着在網上找個demo學學
找到了一個看上去還不錯的,他使用的是ZkClient這個客戶端。
由於我之前在工程里測試過kafka,而kafka其實是自帶ZkClient客戶端的,版本是
<dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> <scope>compile</scope>
代碼看上去沒問題,但是一執行就爆連不上zk服務端。我用一個第三方工具測試,沒問題可以連。
又本地telent 注意使用telnet x.x.x.x 2181 IP和端口之間是空格。發現本地是可以連上的。
初步懷疑api的問題,也就是版本問題。
不過還不死心,我又用了第二種zk客戶端Zookeeper
<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.6.2</version> </dependency>
發現這個是好的,那就說明真的是api的問題了。
在公司的私服上搜索了ZkClient的最新版本,用最新版本重新編譯執行,就完全ok了。
本文要點就兩個
1 telnet 可以測試端口的連接性 注意ip和端口之間 不是冒號而是空格
2 定位問題要有想法,多種可能都試試