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();

}


}

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐