java 客户端 zkclient 监听子节点变化
final ZkClient zkClient = new ZkClient(new ZkConnection("10.6.5.214:2182",3000));
if (zkClient != null) {
zkClient.subscribeChildChanges(zkListenerPath,new IZkChildListener(){
@Override
public void handleChildChange(String parentPath, List<String> currentChilds) throws Exception {
for (String str : currentChilds){
Objetc object = zkClientread.readData(parentPath + "/" + str)
...
}
}
});
}
测试类:
ZkClient zkClient = new ZkClient(new ZkConnection("10.6.5.214:2182",3000));
zkClient.createEphemeral(parentPath + "/" + str,data);
Thread.sleep(Integer.MAX_VALUE);
报错:
1、invalid stream header createEphemeral()没有加data
坑:
zkclient会对数据序列化。。。
需要自己序列化重写 不能用默认的序列化
需要开启一个线程来监听。。。