java为zookeeper的一个节点设置watcher(监听)
public class TestZk01 {// 多个节点之间用逗号分隔private String servers = "192.168.0.220:2181";ZkClient zkClient = null;@Beforepublic void test01(){zkClient = new ZkClient(servers, 10000, 1000,new Ser
public class TestZk01 {
// 多个节点之间用逗号分隔
private String servers = "192.168.0.220:2181";
ZkClient zkClient = null;
@Before
public void test01(){
zkClient = new ZkClient(servers, 10000, 1000,new SerializableSerializer());
}
@Test
public void watchNodeSelfChanges() throws Exception{
// 监听特定节点上数据的变化
zkClient.subscribeDataChanges("/n2",new IZkDataListener(){
// 当修改当前节点的数据
public void handleDataChange(String arg0, Object arg1)
throws Exception {
System.out.println("in method handleDataChange");
System.out.println(arg0+"---->"+arg1);
}
/**
* 当该节点被删掉的时候,会触发
* 参数 arg0: 当前正在被删除的节点的名称
*/
public void handleDataDeleted(String arg0) throws Exception {
System.out.println("in method handleDataDeleted");
System.out.println(arg0);
}});
System.in.read();
}
@Test
public void watchChildNodeChanges() throws Exception{//监听特定节点的子节点的变化
zkClient.subscribeChildChanges("/n2", new IZkChildListener() {
/**
* 当删除或者添加一个子节点以及删除父节点本身,会触发此事件
* @param arg0 :代表发生变化的节点的父节点的名称
* @param arg1:发生变化后父节点下面所有子节点名称
* @throws Exception
*/
public void handleChildChange(String arg0, List<String> arg1)
throws Exception {
System.out.println(arg0+"---->"+arg1);
}
});
System.in.read();
}
}
更多推荐
所有评论(0)