下面来看如何通过Curator接口来获取节点的数据内容。
Curator读取数据API
- CuratorFramework
- public GetDataBuilder getData();
- public GetDataBuilder getData();
- Statable<T>
- public T storingStatIn(Stat stat);
- public T storingStatIn(Stat stat);
- Pathable<T>
- public T forPath(String path) throws Exception;
以上就是一系列最常用的读取数据节点内容的API接口,下面通过一些场景来说明如何使用这些API。
读取一个节点的数据内容
client.getData().forPath(path);
注意,该接口调用后的返回值是byte[]。
读取一个节点的数据内容,同时获取到该节点的stat
client.getData().storingStatIn(stat).forPath(path);
Curator通过传入一个旧的stat变量的方式来存储服务端返回的最新的节点状态信息。
下面同故宫一个实际例子来看看如何在代码中使用这些API。
// 使用Curator获取数据内容
public class Get_Data_Sample {
static String path = "/zk-book";
static CuratorFramework client = CuratorFrameworkFactory.builder().connectString("domain1.book.zookeeper:2181").sessionTimeoutMs(5000).retryPolicy(new ExponentialBackoffRetry(1000, 3)).build();
public static void main(String[] args) throws Exception {
client.start();
client.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL).forPath(path, "init".getBytes());
Stat stat = new Stat();
System.out.println(new String(client.getData().storingStatIn(stat).forPath(path)));
}
}