pom.xml 依赖
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.14</version>
</dependency>
代码: countdownlatch 防止 还没连接就操作节点。 注释了信号量等待就会报错, 因为zk创建连接是一个子线程, 创建节点是在主线程。
private static final String address = "192.168.xxx.xxx:2181";
private static final int session_timeout = 5000;
private static final CountDownLatch cout = new CountDownLatch(1);
public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
ZooKeeper zk = new ZooKeeper(address, session_timeout, new Watcher() {
// 事件通知
@Override
public void process(WatchedEvent event)
{
// 事件状态
KeeperState state = event.getState();
// 连接状态
if (KeeperState.SyncConnected == state)
{
EventType type = event.getType();
// 事件类型
if (EventType.None == type)
{
cout.countDown();
System.out.println("--------zk开始连接.");
}
}
}
});
cout.await();
//创建节点
String create = zk.create("/tangjiandong_tang", "dong".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
System.out.println("-------创建节点: " + create);
zk.close();
}
可视化工具查看zk节点:节点已经创建成功。
下载地址; https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip;
启动可视化工具及 开始连接zookeeper