ZooKeeper Canary我理解用于测试ZK节点是否正常的心跳服务,这是从ClouderaManager中粘下来的:

这是 ZooKeeper 服务级运行状况测试,用于检查基本客户端操作是否正常以及是否在合理时间内完成。该测试将对定期执行以下操作序列的“Canary”测试的结果进行报告。

首先,与 ZooKeeper 服务连接并建立会话(根会话),并创建一个永久 znode 作为所有 Canary 操作的根。然后,Canary 测试将与该服务的每个 ZooKeeper Server 进行连接并建立会话(子会话)。每个子会话均用于在 Canary 根中建立一个临时子 znode。创建子 znode 后,注意每个子会话的每个子 znode 都会寄存“等待 znode 删除”事件。然后,Canary 测试会删除每个子 znode,再验证每个子会话是否接收了每个子 znode 的删除通知。最后,Canary 测试会关闭所有子会话,删除根 znode 并关闭根会话。

如果对 ZooKeeper 服务建立根会话失败、创建永久或临时 znode 失败、删除 znode 失败或检索根 znode 的子 znode 失败,该测试将返回运行状况“不良”。

当 Canary 测试成功但有一个或多个服务器无法参与 Canary 测试操作,或 Canary 测试运行过于缓慢时,该测试将返回运行状况“存在隐患”。

该运行状况测试失败可能表示 ZooKeeper 无法正确或及时地满足客户端请求。请检查 ZooKeeper Server 的状态,并查看 ZooKeeper Server 日志以了解详细信息。

可使用 ZooKeeper Canary 运行状况检查 ZooKeeper 服务监控设置启用或禁用该测试。ZooKeeper Canary 根 Znode 路径、ZooKeeper Canary 连接超时、ZooKeeper Canary 会话超时、ZooKeeper Canary 操作超时 设置用于控制 Canary 操作。

  

Zookeeper Canary的更多相关文章

  1. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  2. [译]ZOOKEEPER RECIPES-Leader Election

    选主 使用ZooKeeper选主的一个简单方法是,在创建znode时使用Sequence和Ephemeral标志.主要思想是,使用一个znode,比如"/election",每个客 ...

  3. zookeeper源码分析之六session机制

    zookeeper中session意味着一个物理连接,客户端连接服务器成功之后,会发送一个连接型请求,此时就会有session 产生. session由sessionTracker产生的,sessio ...

  4. zookeeper源码分析之五服务端(集群leader)处理请求流程

    leader的实现类为LeaderZooKeeperServer,它间接继承自标准ZookeeperServer.它规定了请求到达leader时需要经历的路径: PrepRequestProcesso ...

  5. zookeeper源码分析之四服务端(单机)处理请求流程

    上文: zookeeper源码分析之一服务端启动过程 中,我们介绍了zookeeper服务器的启动过程,其中单机是ZookeeperServer启动,集群使用QuorumPeer启动,那么这次我们分析 ...

  6. zookeeper源码分析之三客户端发送请求流程

    znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个功能是zookeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的 ...

  7. zookeeper源码分析之二客户端启动

    ZooKeeper Client Library提供了丰富直观的API供用户程序使用,下面是一些常用的API: create(path, data, flags): 创建一个ZNode, path是其 ...

  8. zookeeper源码分析之一服务端启动过程

    zookeeper简介 zookeeper是为分布式应用提供分布式协作服务的开源软件.它提供了一组简单的原子操作,分布式应用可以基于这些原子操作来实现更高层次的同步服务,配置维护,组管理和命名.zoo ...

  9. zookeeper集群的搭建以及hadoop ha的相关配置

    1.环境 centos7 hadoop2.6.5 zookeeper3.4.9 jdk1.8 master作为active主机,data1作为standby备用机,三台机器均作为数据节点,yarn资源 ...

随机推荐

  1. IO编程(3)-序列化

    序列化 在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict: d = dict(name='Bob', age=20, score=88) 可以随时修改变量,比如把name改成'Bil ...

  2. Stanford机器学习笔记-9. 聚类(K-means算法)

    9. Clustering Content 9. Clustering 9.1 Supervised Learning and Unsupervised Learning 9.2 K-means al ...

  3. git 中断 merge

    git 版本 >= 1.6.1 git reset --merge git 版本 >= 1.7.4 git merge --abort

  4. Qt error ------ qRegisterMetaType() 跨线程信号与槽的形参携带

    Qt提示: QObject::connect: Cannot queue arguments of type 'FrequencySpectrum' (Make sure 'FrequencySpec ...

  5. AngularJs分层结构小demo

    后端mvc分层,前端也要分层才对嘛.分层的好处不言而喻.简直太清晰,容易维护.反正清爽的一逼.不信你看. 思路:分为controller层和service层.controller层再提取一个公共的层. ...

  6. es6笔记(1) 概要

    什么是ES6 ECMAScript 6.0 (简称ES6) 是继ECMAScript 5.1以后的javascript 语言的下一代标准,在2015年6月份发布. 他的目标是使javascript语言 ...

  7. mongoDB - 日常操作四

    python 使用 mongodb easy_install pymongo # 安装(python2.+) import pymongo connection=pymongo.Connection( ...

  8. json 删除、添加对象

    1. 定义json对象    var entryJson = []; 2. 删除.添加对象 entryJson.pop();     //删除最后一个对象   entryJson.push({ //往 ...

  9. Hacking Using Beef-Xss

    1.环境 hacker:192.168.133.128 os:Kali victims:192.168.133.1    os:win8 2.前期配置 首先进入beef-xss主目录,编辑配置文件,将 ...

  10. linux中Shell标准输出错误 >/dev/null 2>&1 分析【转】

    Shell中可能经常能看到:>/dev/null  2>&1 eg:sudo kill -9 `ps -elf |grep -v grep|grep $1|awk '{print ...