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 ...
随机推荐
- ASP.NET没有魔法——ASP.NET MVC 与数据库之EntityFramework配置与连接字符串
前几篇文章中介绍了如何使用Entity Framework来操作数据库,但是对EF的配置.连接字符串的指定仍然存在一些疑问. 本章将对EF的配置进行介绍. EF可以通过两种方式来实现配置,分别是代码方 ...
- jsp web JavaBean MVC 架构 EL表达式 EL函数 JSTL
一.JavaBean概念(非常重要) 1.JavaBean就是遵循一定书写规范的Java类型(开发中:封装数据) a.必须有默认的构造方法,类必须是public的 public class ...
- codesmith连接Mysql提示“找不到请求的 .Net Framework Data Provider。可能没有安装。"
1,首先需要将MySql.Data.dll复制到codesmith安装目录下bin文件夹下,注意dll的版本 2,其次因为codesmith7采用的是.net4.0的配置文件,(64位系统)找到C:\ ...
- SqlServer2008 导入导出txt或Execl数据
--右键user表所在的数据库,然后任务--导出数据,然后根据提示设置就行 --从txt中导入 EXEC master..xp_cmdshell 'bcp Northwind.dbo.sysusers ...
- asp.net中配置使用Sqlite轻型数据库
Sqlite 管理工具 SQLiteDeveloper及破解 功能特点 表结构设计,数据维护,ddl生成,加密数据库支持,sqlite2,3支持 唯一缺憾,收费,有试用期 破解方法: 注册表删除 HK ...
- hadoop streaming编程小demo(python版)
大数据团队搞数据质量评测.自动化质检和监控平台是用django,MR也是通过python实现的.(后来发现有orc压缩问题,python不知道怎么解决,正在改成java版本) 这里展示一个python ...
- BaseServlet,让一个servlet处理多个请求
BaseServlet 第一次学习servlet的时候是跟着传智播客免费的教学视频,其中崔希凡讲的是我学过自认讲的最好的一位,BaseServlet也是跟着他写过一次,当时很多东西不能理解,后来慢慢发 ...
- Echarts数据可视化dataZoom,开发全解+完美注释
全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...
- win10 uwp 获得焦点改变
本文讲的是当我们应用失去焦点时,我们获得事件,当我们应用获得焦点,同样获得事件.同时,在应用不可以见时,我们也可以获得. 上面一张图,开始是应用启动,获得焦点,应用显示.然后我们打开另一个应用,切换, ...
- ASP.NET Core 网站发布到Linux服务器(转)
出处;ASP.NET Core 网站发布到Linux服务器 长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台 ...