Curator之PathChildrenCache子节点监听

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26641781/article/details/83347960

Curator之PathChildrenCache子节点监听:

/*子节点监听*/
        //子节点添加watcher
        //PathChildrenCache:监听数据节点的增删改,会触发事件
        String childNodePathCache = nodePath;
        //childData:设置缓存节点的数据状态
        final PathChildrenCache childrenCache = new PathChildrenCache(cto.client,childNodePathCache,true);

        /*
        * StartMode:初始化方式
        * POST_INITIALIZED_EVENT:异步初始化。初始化后会触发事件
        * NORMAL:异步初始化
        * BUILD_INITIAL_CACHE:同步初始化
        * */
        childrenCache.start(PathChildrenCache.StartMode.POST_INITIALIZED_EVENT);

        List<ChildData> childDataList = childrenCache.getCurrentData();
        System.out.println("当前数据节点的子节点数据列表:");
        for(ChildData cd : childDataList){
            String childData = new String(cd.getData());
            System.out.println(childData);
        }

        childrenCache.getListenable().addListener(new PathChildrenCacheListener() {
            public void childEvent(CuratorFramework ient, PathChildrenCacheEvent event) throws Exception {
               if(event.getType().equals(PathChildrenCacheEvent.Type.INITIALIZED)){
                   System.out.println("子节点初始化成功");
               }else if(event.getType().equals(PathChildrenCacheEvent.Type.CHILD_ADDED)){
                   System.out.println("添加子节点路径:"+event.getData().getPath());
                   System.out.println("子节点数据:"+new String(event.getData().getData()));
               }else if(event.getType().equals(PathChildrenCacheEvent.Type.CHILD_REMOVED)){
                   System.out.println("删除子节点:"+event.getData().getPath());
               }else if(event.getType().equals(PathChildrenCacheEvent.Type.CHILD_UPDATED)){
                   System.out.println("修改子节点路径:"+event.getData().getPath());
                   System.out.println("修改子节点数据:"+new String(event.getData().getData()));
               }
            }
        });

在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_26641781/article/details/83347960