1. ZooKeeper原生API:
ZooKeeper
2. Maven 配置:
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>
3. 构造方使用
CountDownLatch countDownLatch = new CountDownLatch(1);
ZooKeeper zookeeper = new ZooKeeper("192.168.80.33:2181,192.168.80.36:2181,192.168.80.39:2181",
4000, new Watcher() {
@Override
public void process(WatchedEvent watchedEvent) {
//等待zookeeper连接成功后才进行后面的业务逻辑处理
if (Event.KeeperState.SyncConnected == watchedEvent.getState()) {
countDownLatch.countDown();
}
}
});
countDownLatch.await();
连接状态为:
NOT_CONNECTED → CONNECTING → CONNECTED → CLOSE
4. 创建节点:
final String path = "/zk-persis-thomas";
//创建节点
zookeeper.create(path, "0".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
注:第一个参数为:节点名称;第二参数为:节点值;第三个参数:节点访问权限;第四个参数:节点类型
5. 获取节点:
//根据版本查询数据
Stat stat = new Stat();//Stata 为每个节点的信息
byte[] bytes = zookeeper.getData(path, null, stat);
System.out.println(new String(bytes));
6. 修改节点值:
//修改数据
stat = zookeeper.setData(path, "1".getBytes(), stat.getVersion());
7.删除节点
//删除数据
zookeeper.delete(path, stat.getVersion());