初步认识zookeeper(6)--Apache Curator Watcher事件

目录概要

  • 一、如何注册事件机制
  • 二、代码实操

正文

一、如何注册事件机制
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();
    }
发布了20 篇原创文章 · 获赞 32 · 访问量 5597

猜你喜欢

转载自blog.csdn.net/shuai8624/article/details/96778775