public class UpdateNode implements Watcher {
private static ZooKeeper zooKeeper;
public static void main(String[] args) throws IOException, InterruptedException {
/**
* 客户端可以通过创建一个zk实例来连接zk服务器
* new Zookeeper(connectString,sessionTimeOut,Watcher)
* connectString:连接地址:IP:端口
* sessionTimeOut:会话超时时间:单位毫秒
* Wather:监听器(当特定时间出发监听时,zk会通过watcher通知到客户端)
*/
zooKeeper = new ZooKeeper("101.132.167.18:2181", 5000, new UpdateNode());
System.out.println(zooKeeper.getState());
//countDownLatch.await();
System.out.println("客户端与服务端会话真正建立了");
Thread.sleep(Integer.MAX_VALUE);
}
@Override
public void process(WatchedEvent watchedEvent) {
if (watchedEvent.getState() == Watcher.Event.KeeperState.SyncConnected) {
try {
updateNodeSync();
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/**
* 更新数据节点内容的方法
*/
public void updateNodeSync() throws KeeperException, InterruptedException {
/**
* path : 路径
* data : 要修改的内容 byte[]
* version : 为 -1,表示对最新版本的数据进行修改
* zooKeeper.setData(path,data,version)
*/
byte[] data = zooKeeper.getData("/persistent",false,null);
System.out.println("修改前的数值:" + new String(data));
// 修改 /persistent 的数据
Stat stat =zooKeeper.setData("/persistent","客户端修改节点数据".getBytes(),-1);
byte[] data2 = zooKeeper.getData("/persistent",false,null);
System.out.println("修改前的数值:" + new String(data2));
}
}
zookeeper 修改节点数据
最新推荐文章于 2023-10-27 20:15:00 发布