文档章节

Zookeeper 监控节点

echola
 echola
发布于 06/14 16:43
字数 332
阅读 50
收藏 0
点赞 0
评论 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
粉丝 12
博文 16
码字总数 10715
作品 0
西安
程序员
ZooKeeper 的管理工具 - Shepher

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

梦回唐朝302 ⋅ 05/18 ⋅ 0

分布式锁与实现(二)——基于ZooKeeper实现

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

刘祖鹏 ⋅ 05/08 ⋅ 0

ZooKeeper教程资源收集(简介/原理/示例/解决方案)

菩提树下的杨过: ZooKeeper 笔记(1) 安装部署及hello world ZooKeeper 笔记(2) 监听数据变化 ZooKeeper 笔记(3) 实战应用之【统一配置管理】 ZooKeeper 笔记(4) 实战应用之【消除单点故障】...

easonjim ⋅ 2017/09/05 ⋅ 0

阿里大数据攻城师教你怎样理解ZooKeeper(六)

Zookeeper是什么 是一个针对大型分布式系统的可靠协调系统; 提供的功能包括:配置维护、名字服务、分布式同步、组服务等; 目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效...

JAVA丶学习 ⋅ 04/13 ⋅ 0

ZooKeeper是什么(转)

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

easonjim ⋅ 2017/09/05 ⋅ 0

ZooKeeper的应用场景(转)

应用场景1 :统一命名服务 分布式应用中,通常需要一套完备的命令机制,既能产生唯一的标识,又方便人识别和记忆。 我们知道,每个ZNode都可以由其路径唯一标识,路径本身也比较简洁直观,另...

easonjim ⋅ 2017/09/05 ⋅ 0

ZooKeeper学习笔记十三 分布式系统中基于ZooKeeper的服务注册中心设计

本文学习资源来自《分布式服务框架原理与实践》中国工信出版信息、电子工业出版社 一、服务注册中心 对于服务提供者,它需要发布服务;由于应用系统的复杂性,服务的数量、类型不断膨胀;对于...

xundh ⋅ 05/04 ⋅ 0

ZooKeeper学习笔记三 ZooKeeper与Paxos

本文学习内容来自: 《从Paxos到ZooKeeper分布式一致性原理与实践》 电子工业出版社 Apache ZooKeeper是由Apache Hadoop的子项目发展而来,于2010年11月正式成为了Apache的顶级项目。ZooKeep...

xundh ⋅ 04/27 ⋅ 0

zookeeper的应用和原理介绍,分享好文

来源:https://blog.csdn.net/gs80140/article/details/51496925 场景一 有这样一个场景:系统中有大约100w的用户,每个用户平 均有3个邮箱账号,每隔5分钟,每个邮箱账需要收取100封邮件,最...

xudongt ⋅ 06/13 ⋅ 0

ZooKeeper可以用来做什么(转)

在ZooKeeper的官网上有这么一句话:ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing grou......

easonjim ⋅ 2017/09/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

浅谈springboot Web模式下的线程安全问题

我们在@RestController下,一般都是@AutoWired一些Service,由于这些Service都是单例,所以并不存在线程安全问题。 由于Controller本身是单例模式 (非线程安全的), 这意味着每个request过来,...

算法之名 ⋅ 今天 ⋅ 0

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部