5. 监视和ZooKeeper操作
ZooKeeper中的写入(write)操作是原子性和持久性的。 写入到大多数ZooKeeper服务器上的持久性存储中,可以保证写操作成功。 无论如何,ZooKeeper的最终一致性模型允许读取(read)ZooKeeper服务的最新状态,并且同步(sync)操作允许客户端更新ZooKeeper服务的最新状态。
znode中的读取(read)操作(如exists,getChildren和getData)允许在其上设置监视。 另一方面,由znode的写入(write)操作触发的监视(如create,delete和setData ACL操作)并不会有监控的参与。
以下是在znode状态更改期间可能发生的监视事件的类型:
- NodeChildrenChanged: 一个znode的子节点被创建或删除时
- NodeCreated:在ZooKeeper路径中创建一个znode时
- NodeDataChanged:与znode相关的数据被更新时
- NodeDeleted: znode在ZooKeeper路径中被删除时
监视事件的类型取决于监视和触发监视的操作。 关于三个主要操作如何产生事件的一些关键信息如下表所示:
| 操作 | 事件生成操作 |
|---|---|
| exists | znode被创建或删除,或其数据被更新 |
| getChildren | znode的子节点被创建或删除,或者znode本身被删除 |
| getData | znode被删除或其数据被更新 |
监视事件包括生成事件的znode的路径。 因此,客户端可以通过检查znode的路径来找到NodeCreated和NodeDeleted事件的znode创建和删除。 要发现NodeChildrenChanged事件后哪些子节点发生了变化,必须调用getChildren操作来检索新的子节点列表。 同样,为了发现NodeDataChanged事件的新数据,必须调用getData方法。
ZooKeeper从其数据模型的角度提供了一系列的保证,并在其基础上构建了监视底层建设,从而实现了其他分布式协调原语的简单,快速和可扩展的构建:
- Sequential consistency:这确保了客户端的更新总是以FIFO的顺序处理。
- Atomicity:这确保更新要么成功,要么失败,不会有部分提交的情况。
- Single system image:客户端可以看到ZooKeeper服务的相同视图,它不依赖于它所连接的系统中的哪个ZooKeeper服务器。
- Reliability:这确保了这些更新一旦被应用就会一直存在。直到被客户端重写。
- Timeliness:客户端的系统视图保证在一定的时间内是最新的。这被称为最终一致性。
5. 监视和ZooKeeper操作的更多相关文章
- Zookeeper操作
Zookeeper操作 注意搭建: 1.集群规模不小于3个节点 2.服务器之间系统时间要保持一致 1.搭建步骤: 1.解压安装包 2.设置zookeeper环境变量 3.修改配置文件————zoo.c ...
- list utilities监视数据库前滚操作
您可以使用 db2pd 或 LIST UTILITIES 命令来监视数据库前滚操作的进度. 过程 发出 LIST UTILITIES 命令并指定 SHOW DETAIL 参数 db2 LIST UTI ...
- 第8章 ZooKeeper操作
目录 8.1 集群环境搭建 1.上传ZooKeeper安装文件 2.编写配置文件 3.拷贝ZooKeeper安装信息到其它节点 4.修改其它节点配置 5.启动ZooKeeper 6.查看启动状态 7. ...
- 连接Zookeeper操作
public class ZKConnector implements Watcher{ private static final Logger logger =LoggerFactory.getLo ...
- 坐下坐下,基本操作(ZooKeeper 操作篇)
本文作者:HelloGitHub-老荀 Hi,这里是 HelloGitHub 推出的 HelloZooKeeper 系列,免费开源.有趣.入门级的 ZooKeeper 教程,面向有编程基础的新手. Z ...
- zookeeper操作节点代码
package cn.hbaf.zookeeper_api; import org.apache.curator.RetryPolicy; import org.apache.curator.fram ...
- 基于ZooKeeper的分布式锁和队列
在分布式系统中,往往需要一些分布式同步原语来做一些协同工作,上一篇文章介绍了Zookeeper的基本原理,本文介绍下基于Zookeeper的Lock和Queue的实现,主要代码都来自Zookeeper ...
- ZooKeeper学习第一期---Zookeeper简单介绍
一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术.那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同 ...
- ZooKeeper架构设计及其应用要点
问题导读: 1.ZooKeeper的数据模型是什么 ?2.ZooKeeper应用有哪些陷阱 ?3.每个节点(ZNode)中存储的是什么?4.一个ZNode维护了一个状态结构都包含了什么?5.ZNode ...
随机推荐
- 【bzoj2761】[JLOI2011]不重复数字
给出N个数,要求把其中重复的去掉,只保留第一次出现的数. 例如,给出的数为1 2 18 3 3 19 2 3 6 5 4,其中2和3有重复,去除后的结果为1 2 18 3 19 6 5 4. Inpu ...
- [USACO 3.3.1]骑马修栅栏t
[USACO 3.3.1]骑马修栅栏 时间限制: 1 Sec 内存限制: 64 MB提交: 39 解决: 17[提交][状态][讨论版] 题目描述 农民John每年有很多栅栏要修理.他总是骑着马穿 ...
- Python自学笔记-filter()函数(来自廖雪峰的官网Python3)
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. Python内 ...
- git-分支使用方式
需求场景:假如你看着教程完成了一个项目,但是感觉第一次代码掌握不牢,想要进行第二次代码练习--如果某某心里想我还有初始备份文件,我此时的心里独白是你的硬盘还够用吗o(╯□╰)o 1 创建一个新分支 - ...
- wmic命令
WMIC扩展WMI(Windows Management Instrumentation,Windows管理工具) ,提供了从命令行接口和批命令脚本执行系统管理的支持. 一.如何使用帮助文档: 1.w ...
- asp.net数据四舍五入
#region 数据四舍五入 /// <summary> /// 四舍五入 /// </summary> /// <param name="dblnum&quo ...
- Spring ——依赖注入配置一些知识点
依赖注入 依赖注入的原理与实现 依赖注入(DI)和依赖查找(Dependency Lookup)共同组成 控制反转(IoC).从原理的角度来说,依赖注入和控制反转是没 有不同的,可以看作是从两个角度来 ...
- [hihoCoder]矩形判断
#1040 : 矩形判断 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 给出平面上4条线段,判断这4条线段是否恰好围成一个面积大于0的矩形. 输入 输入第一行是一个整数T ...
- MongoDB理解
1. 什么是MongoDB (1)MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. (2)MongoDB 是一个 ...
- 02-从零玩转JavaWeb-类与对象
配套视频:对象与类 一.什么是对象 包含特性和行为的一个实体 下图当中,"颜色"和"体重"属于"特性或叫状态" "咬人&quo ...