这个错误通常是因为ZooKeeper服务器未启动或端口号设置不正确导致的。以下是使用Java代码解决此问题的示例:
import org.apache.zookeeper.*;
public class ZooKeeperExample {
public static void main(String[] args) throws Exception {
String host = "localhost";
int port = 2181;
// 创建ZooKeeper连接
ZooKeeper zooKeeper = new ZooKeeper(host + ":" + port, 5000, new Watcher() {
public void process(WatchedEvent event) {
// 连接建立成功后的回调函数
if (event.getState() == Event.KeeperState.SyncConnected) {
System.out.println("ZooKeeper连接成功!");
}
}
});
// 等待连接建立完成
while (zooKeeper.getState() != ZooKeeper.States.CONNECTED) {
Thread.sleep(1000);
}
// 打印ZooKeeper状态
System.out.println("ZooKeeper状态:" + zooKeeper.getState());
// 关闭ZooKeeper连接
zooKeeper.close();
}
}
在这个示例中,我们使用ZooKeeper的Java API创建了一个ZooKeeper连接。我们指定了本地主机和端口号2181。然后,我们设置一个回调函数来处理连接成功的事件。在连接建立之前,我们使用一个循环来等待连接建立完成。一旦连接建立成功,我们打印出ZooKeeper的状态。最后,我们关闭ZooKeeper连接。
确保在运行这个代码之前,ZooKeeper服务器已经启动,并且端口号设置正确。