文档章节

Zookeeper 监控节点

echola
 echola
发布于 06/14 16:43
字数 414
阅读 81
收藏 0
原理

利用Znode临时节点的创建、删除的特性
客户端活跃时,临时节点就是有效的。当客户端与ZooKeeper集合断开连接时,临时节点会自动删除 image

步骤
  • watcher监控端创建一个永久型的Znode,并注册这个node的子节点变更事件。
  • service服务端创建临时性子节点
代码
  • 依赖包:
    • Netflix/curator,基于Zookeeper的二次封装,提供了可用性更好的API和链式调用,可以方便的监控子节点的变更,事件注册只需要注册一次。4.0版本支持zookeeper3.4.X
  • 具体文档地址:http://curator.apache.org
	<dependency>
			<groupId>org.apache.curator</groupId>
			<artifactId>curator-recipes</artifactId>
			<version>4.0.0</version>
			<exclusions>
				<exclusion>
					<groupId>org.apache.zookeeper</groupId>
					<artifactId>zookeeper</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
  • 监控端
    //创建客户端连接
   RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
    CuratorFramework client1 = CuratorFrameworkFactory.builder().connectString(hostPort)
                .sessionTimeoutMs(5000)//会话超时时间
                .connectionTimeoutMs(5000)//连接超时时间
                .retryPolicy(retryPolicy)
                .build();
        client1.start();
    
    //创建节点
        try {
            client1.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT)
                    .forPath(pnode);
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        //注册子节点的监听事件
        final PathChildrenCache childrenCache = new PathChildrenCache(client1,pnode,true);
        childrenCache.start();
        childrenCache.getListenable().addListener(new PathChildrenCacheListener() {
            @Override
            public void childEvent(CuratorFramework curatorFramework, PathChildrenCacheEvent event) throws Exception {
                log.info("childEvent:{}", JSON.toJSONString(event));
            }
        });
  • 服务端(被监控端)
 zooKeeper = new ZooKeeper(hostPort,3000,this);
        Stat stat = zooKeeper.exists(znode,false);//创建节点,但并不监控
        if(stat==null){
            zooKeeper.create(znode,null, ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.EPHEMERAL);
        }

项目地址:https://github.com/echola2016/watcher
页面截图: image

© 著作权归作者所有

共有 人打赏支持
echola
粉丝 13
博文 22
码字总数 11751
作品 0
西安
程序员
ZooKeeper 的管理工具 - Shepher

Shepher 是一款 ZooKeeper 的管理工具。在小米公司,我们用它作为配置管理中心。Readme in English 特性 ZooKeeper 节点的可视化操作 ZooKeeper 节点的快照管理 ZooKeeper 节点修改的 Diff 和...

梦回唐朝302
05/18
0
0
分布式服务框架 Zookeeper -- 管理分布式环境中的数据

安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和...

风林火山
2010/12/18
0
0
分布式服务框架 Zookeeper -- 管理分布式环境中的数据

源自 IBM developerWorks http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/index.html 安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可...

zlfwmm
06/26
0
0
分布式锁与实现(二)——基于ZooKeeper实现

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配...

刘祖鹏
05/08
0
0
Windows安装和使用zookeeper

之前整理过一篇文章《zookeeper 分布式锁服务》,本文介绍的 Zookeeper 是以 3.4.5 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安...

哈哈呵呵R
2014/04/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

49.Nginx防盗链 访问控制 解析php相关 代理服务器

12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置(502的问题) 12.16 Nginx代理 扩展 502问题汇总 http://ask.apelearn.com/question/9109 location优先级 http://blog....

王鑫linux
今天
1
0
Nginx防盗链、访问控制、解析php相关配置、Nginx代理

一、Nginx防盗链 1. 编辑虚拟主机配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 2. 在配置文件中添加如下的内容 { expires 7d; valid_referers none blocked server_names *.tes......

芬野de博客
今天
0
0
spring EL 和资源调用

资源调用 import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.PropertySource;import org.springframework.core.io.Resource;......

Canaan_
今天
1
0
memcached命令行、memcached数据导出和导入

一、memcached命令行 yum装telnet yum install telent 进入memcached telnet 127.0.0.1 11211 命令最后的2表示,两位字节,30表示过期时间(秒) 查看key1 get key1 删除:ctrl+删除键 二、m...

Zhouliang6
今天
1
0
Linux定时备份MySQL数据库

做项目有时候要备份数据库,手动备份太麻烦,所以找了一下定时备份数据库的方法 Linux里有一个 crontab 命令被用来提交和管理用户的需要周期性执行的任务,就像Windows里的定时任务一样,用这...

月夜中徘徊
今天
1
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部