目录概要
- 一、如何注册事件机制
- 二、代码实操
正文
一、如何注册事件机制
NodeCache 监听当前节点
PathChildrenCache 监听儿子节点
TreeCache 综合节点监听(既能监听当前节点,也能监听子节点)
二、代码示例
1、NodeCache 监听节点
/**
*描述:NodeCache 监听节点
* @param curatorFramework
* @param path
* @author ws
*/
public static void addListenerWithNodeCache(CuratorFramework curatorFramework, String path) throws Exception {
final NodeCache nodeCache = new NodeCache(curatorFramework,path,false);
NodeCacheListener nodeCacheListener = new NodeCacheListener() {
@Override
public void nodeChanged() throws Exception {
System.out.println("nodeCache事件:"+nodeCache.getCurrentData().getPath());
}
};
nodeCache.getListenable().addListener(nodeCacheListener);
nodeCache.start();
}
2、PathChildrenCache 监听儿子
/**
*描述: PathChildrenCache 监听儿子
* @param curatorFramework //CuratorFramework连接
* @param path //节点路径
* @author ws
* @throws Exception
*/
public static void addListenerWithPathChildCache(CuratorFramework curatorFramework, String path) throws Exception {
final PathChildrenCache pathChildrenCache = new PathChildrenCache(curatorFramework,path,false);
PathChildrenCacheListener pathChildrenCacheListener = new PathChildrenCacheListener() {
@Override
public void childEvent(CuratorFramework curatorFramework, PathChildrenCacheEvent pathChildrenCacheEvent) throws Exception {
System.out.println("pathChildrenCache事件:"+pathChildrenCacheEvent.getType());
}
};
pathChildrenCache.getListenable().addListener(pathChildrenCacheListener);
pathChildrenCache.start();
}
3、TreeCache 综合节点监听
/**
* 描述:TreeCache 综合节点监听
* @param curatorFramework
* @param path
* @author ws
* @throws Exception
*/
public static void addListenerWithTreeCache(CuratorFramework curatorFramework, String path) throws Exception {
final TreeCache treeCache = new TreeCache(curatorFramework, path);
TreeCacheListener treeCacheListener = new TreeCacheListener() {
@Override
public void childEvent(CuratorFramework curatorFramework, TreeCacheEvent treeCacheEvent) throws Exception {
System.out.println("treeCache事件:"+treeCacheEvent.getType()+"-->"+treeCacheEvent.getData().getPath());
}
};
treeCache.getListenable().addListener(treeCacheListener);
treeCache.start();
}