- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ZooKeeper
Zookeeper
Zookerper是高性能、可扩展的分布式应用程序协调服务框架。使用java编写,支持java和C两种编程语言。
典型的应用场景:
统一命名服务(name service)
配置管理(configuration management)
leader election
共享锁(Locks)
队列管理
组成员关系(group membership)
设计目的
最终一致性:client不论连接那个server,展示给它的都是同一视图。实时的一致性可以由客户端通过调用sync()方法
原子性:更新操作要么成功要么失败
可靠性:一旦一个更新操作被应用,那么在client再次更新它之前,它的值将不会改变
顺序一致性:全局有序,client的更新顺序与他们的发送顺序一致。即如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布
数据模型
类似于文件系统,像树一样的层级结构,树中的节点称为Znode,可存储数据,并关联一个ACL
Znodes可以是文件也可以是目录(允许有子节点)
存数的数据有限,不能超过1M
路径只能是绝对路径,
必须以『/』开头,
不能包含.或..
Zookeeper Znode
所在路径唯一标识;可以有子目录,且可以存储数据;有版本,可以保存多个版本的数据;每次对Zookeeper状态的改变,都生成唯一的Zid来,其为全局有序,表示事务的顺序,如果zxid1小于zxid2,则zxid1在zxid2之前发生,
Watches:当Znode以某种方式改变时,通知客户端(应用:配置管理)
Ephemeral Nodes: 与session相同的生命周期,session失效,znode也就删除了;不能有子节点(应用:组成员管理服务)
Sequence Nodes -- Unique Naming,会自动编号,如App1已经存在,再创建,则会自动命名为App2(应用:共享锁)
Znode stat结构
zookeeper的API
功能
描述
create
在本地目录树中创建一个节点
delete
删除一个节点
exists
测试本地是否存在目标节点
get/set data
从目标节点上读取?/?写数据
get/set ACL
获取?/?设置目标节点访问控制列表信息
get children
检索一个子节点上的列表
sync
等待要被传送的数据
Zookeeper Session
Client和Zookeeper集群建立连接,整个session状态变化如下图
备注:如果因为网络状态不好,client和Server失去联系,client会停留在当前状态,会尝试主动再次连接Zookeeper Server。client不能宣称自己的session expired,session expired是由Zookeeper Server来决定的,client可以选择自己主动关闭session
Zookeeper Watch
用于表示一个标准的事件处理器,其定义了事件通知相关逻辑。包括通知状态和事件类型,
getData,getChildren(),exists()这三个方法可以针对参数中的path设置watcher,当path对应的Node 有相应变化时,server端会给对应的设置了watcher的client 发送一个一次性的触发通知事件。客户端在收到这个触发通知事件后,可以根据自己的业务逻辑进行相应地处理。
注意这个watcher的功能是一次性的,如果还想继续得到watcher通知,在处理完事件后,要重新register
zooKeeper 客户端
创建ZooKeeper对象时,应会创建一个ClientCnxn(代表了客户端连接对象)。与此同时启动了两个线程:SendThread、EventThread。两个队列:outgoingQueue和pendingQueue。
同步调用,就是客户端成功发送请求后,才继续执行。例如:zk.create(path,data,acl,createMode)。一个线程A执行这个create时,会创建一个表示create动作的packet,放到数据发送队列outgoingQueue。之后当线程A就开始等待,直到SendThread线程从outgoingQueue队列取出该packet,并将其成功发送(已收到服务端的回应为准)。然后线程A才继续执行。
异步调用,就是客户端不会管请求是否发送成功,都会继续执行。例如:zk.create(path,data,acl,createMode,stringCallback)。一个线程A执行这个create时,会创建一个表示create动作的packet,放到数据发送队列outgoingQueu
您可能关注的文档
- 【中层管理-培训】=做最好的中层管理培训课件【P083】讲述.ppt
- 一轮A新中国外交讲述.ppt
- x第1章-概述-市政工程基础讲述.ppt
- 一轮复习:第5章第1讲功和功率(人教版)讲述.doc
- 汽车行驶系统重点.ppt
- 一轮复习:选修3-基因工程讲述.ppt
- 【中考冲刺】人教版2016年初中物理中考复习课件专题一作图题专题讲述.ppt
- 【中考风向标】2016中考物理一轮复习基础知识过关第5部分生活物理第2讲信息、材料世界(精讲)课件讲述.ppt
- 汽车检测与诊断技术(第2章汽车检测站)重点.ppt
- 第九章醇酚醚20151116-合肥工业大学-有机化学重点.ppt
- 北师大版(2024)八年级数学上册课件 3.2 平面直角坐标系 第2课时 点的坐标特征.pptx
- 北师大版(2024)八年级数学上册课件 3.2 平面直角坐标系 第3课时 建立适当的平面直角坐标系.pptx
- 北师大版(2024)八年级数学上册课件 4.3 一次函数的图象 第1课时 正比例函数的图象及性质.pptx
- (人教A版数学选择性必修三)讲义第15讲7.1.1条件概率(学生版+解析).docx
- (人教A版数学选择性必修三)讲义第19讲8.1成对数据的统计相关性(8.1.1变量的相关关系+8.1.2样本相关系数)(学生版+解析).docx
- 北师大版(2024)八年级数学上册课件 5.2 二元一次方程组的解法 第2课时 加减消元法.pptx
- (人教A版数学选择性必修一)2025年秋季学期讲义第01讲1.1.1空间向量及其线性运算(学生版+教师版).docx
- 北师大版(2024)八年级数学上册课件 5.2 二元一次方程组的解法 第1课时 代入消元法.pptx
- 北师大版(2024)八年级数学上册课件 5.3 二元一次方程组的应用 第3课时 二元一次方程组的应用(3).pptx
- 北师大版(2024)八年级数学上册课件 5.4 二元一次方程与一次函数 第2课时 用二元一次方程组确定一次函数表达式.pptx
文档评论(0)