初步认识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();
    }
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Apache ZooKeeper 是一个开源的分布式协调服务,它提供了一个高度可靠的分布式协调系统,用于管理和维护分布式应用程序中的信息。Apache ZooKeeper 使用的是分布式一致性算法,可以将多个节点组织在一起,确保它们之间的状态一致性。 ZooKeeper 提供了一个层次化的命名空间,类似于文件系统的目录结构。每个节点都可以存储一些数据,并且可以监视其他节点的状态变化。应用程序可以使用 ZooKeeper 来注册、发现和协调分布式任务。 Apache ZooKeeper 的主要特点包括: 1. 高性能:ZooKeeper 是为高吞吐量和低延迟而设计的,可以处理大量的客户端和数据请求。 2. 可靠性:ZooKeeper 使用了分布式一致性协议,可以保证数据的可靠性和一致性。 3. 简单:ZooKeeper 提供了一组简单的原语操作(例如创建、读取、写入和删除节点等),使得开发者可以轻松构建分布式应用程序。 4. 可扩展性:ZooKeeper 的设计可以扩展到数千个节点,并且可以动态地添加或删除节点。 5. 安全性:ZooKeeper 支持访问控制,可以为不同的客户端或角色设置不同的权限。 Apache ZooKeeper 3.5.5 是 ZooKeeper 的一个版本。这个版本可能包括一些新特性、修复了一些 bug,并且提供了更好的性能和可靠性。用户可以根据自己的需求选择适合的 ZooKeeper 版本,以满足他们的分布式协调需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

臭小子帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值