已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ZooKeeper分布式应用的协调器 电子工业出版社刘鹏主编 教材配套课件10 主要内容 ZooKeeper的数据模型ZooKeeper的数据读写机制ZooKeeper的使用方法 为什么需要ZooKeeper 大部分分布式应用需要一个主控 协调器或控制器来管理物理分布的子进程 如资源 任务分配等 目前 大部分应用需要开发私有的协调程序 缺乏一个通用的机制协调程序的反复编写浪费 且难以形成通用 伸缩性好的协调器ZooKeeper 提供通用的分布式锁服务 用以协调分布式应用 如 为HBase提供服务 ZooKeeper的数据模型 层次化目录结构命名符合常规文件系统规范 不能包含 节点Znode可以包含数据与子节点客户端应用可在节点上设置监视器节点数据不支持部分读写 而是一次性完整读写Ephemeral节点 节点创建属性 Ephemeral创建的节点不是持久节点一旦与客户端的会话结束 节点自动删除Sequence创建节点时 编号自动加1例如x 1 x 2 s 3 x 4等 ZooKeeper的读写机制 ZooKeeper是一个由多个Server组成的集群一个Leader 多个Follower每个Server都保存了一份数据副本全局数据一致分布式读写更新请求转发 由Leader实施 使用ZooKeeper的约定 更新请求顺序执行来自同一个Client的更新请求按其发送顺序依次执行数据更新原子性一次数据更新要么成功 要么失败 不存在部分数据写入成功或失败的情况全局唯一数据视图Client无论连接哪个Server 数据视图都是一致的实时性在一定时间范围内 Client能读到最新数据 ZooKeeper的API Stringcreate path data acl flags voiddelete path expectedVersion StatsetData path data expectedVersion data Stat getData path watch Statexists path watch String getChildren path watch voidsync path StatsetACL path acl expectedVersion acl Stat getACL path 包含监视器 调用参数均包含节点路径 对比 Chubby的API handleOpen path Close handle GetContentsAndStat handle GetStat handle ReadDir handle SetContents handle SetACL handle Delete path Acquire TryAcquire Release GetSequencer SetSequencer CheckSequencer 仅Open包含节点路径 生成handle供其他API使用 如何使用ZooKeeper 关于ZooKeeper的锁服务这里的 锁 并非对ZooKeeper的资源加锁 用于对第三方资源加锁用例多个第三方分布式Server需要使用某第三方资源 谁获取了ZooKeeper中的独占锁 谁就可以使用第三方资源 否则等待 如何使用ZooKeeper Leader选举用于在多个节点中选取主控 如GFS中对外服务Master节点的选取 1 getData servers leader true 2 如果读取成功则从数据中获取leader信息 退出3 读取失败 执行create servers leader hostname EPHEMERAL 注意节点类型 如果创建成功则自己成为leader 写入信息 退出5 如果写入失败 则返回步骤1 getData设置了监视器 如果数据发生变化 会重启上述流程 如何使用ZooKeeper 独占锁如果分布式应用需要对某资源独占使用 可以申请独占锁 1 id create locks x SEQUENCE EPHEMERAL 2 getChildren locks false 3 如果id是第一个节点 则获取独占锁 退出4 exists nameoflastchildbeforeid true 注意 设置了监视器 5 如果id之前不存在节点 返回步骤26 等待通知7 返回步骤2 有且仅有一个Client可以获取到独占锁 如何使用ZooKeeper 共享锁 1 id create locks s SEQUENCE EPHEMERAL 2 getChildren locks false 3 如果id之前没有x 类型的节点 获取共享锁 退出4 exists nameofthelastx beforeid true 5 如果id之前不存在x 类型节点 返回步骤26 等待事件通知7 返回步骤2 如果之前没有独占锁 就可以获取共享锁 如何使用ZooKeeper 其他应用 小数据存储 例如 GFS中master如何获知ChunkServer信息 基于ZooKeeper的实现方法ChunkServer执行如下操作 1 id create chunkservers cs SEQUENCE EPHEMERAL 2 向节点id中写入ChunkServer元信息Master执行如下操作 1 getChildren chunkservers true 2 读取子节点数据 获知ChunkServer元信息 其他 ZooKeeper的会话Client通过发送PING请求与Server保持会话通过PING 可以同时获知Client与Server是否活跃ZooKeeper的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 影像科检查项目基于成本的阶梯式定价策略
- 新生儿窒息家庭预防与应急处理指南
- 产科护理技能与护理团队建设
- 医疗急救人员礼仪
- 医疗行业跨界融合与创新
- 局部放疗与免疫治疗协同效应的动物模型
- 医疗机器人辅助手术技术进展
- 叩背排痰临床护理操作规范与要点
- 人工智能技术在重症急救护理中的应用前景
- 内痔套扎术后伤口愈合护理:促进组织修复的秘诀
- (完整文本)乌有先生传(原文+注释+译文)
- 儿童流感的预防与治疗
- 三年级数学专项思维训练习题11套原卷+答案解析
- 事故油池基坑开挖专项施工方案
- 2021级数据科学与大数据技术专业培养方案(本科)
- 《量子力学》全本课件
- 《我弥留之际》读书笔记思维导图PPT模板下载
- 病毒性肝炎的免疫学检查
- 环境催化-课件1
- 旭辉地产年度品牌整合传播规划方案
- GB/T 27924-2011工业货架规格尺寸与额定荷载
评论
0/150
提交评论