起因,想起来分布式锁也是常考的知识点,自己还不是太熟,就想着在网上找个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 定位问题要有想法,多种可能都试试