《云计算系列教程》PPT课件

上传人:tian****1990 文档编号:246230695 上传时间:2024-10-12 格式:PPT 页数:16 大小:356KB
返回 下载 相关 举报
《云计算系列教程》PPT课件_第1页
第1页 / 共16页
《云计算系列教程》PPT课件_第2页
第2页 / 共16页
《云计算系列教程》PPT课件_第3页
第3页 / 共16页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,ZooKeeper,分布式应用的协调器,主要内容,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,String create(path,data,acl,flags),void delete(path,expectedVersion),Stat setData(path,data,expectedVersion),(data,Stat)getData(path,watch),Stat exists(path,watch),String getChildren(path,watch),void sync(path),Stat setACL(path,acl,expectedVersion),(acl,Stat)getACL(path),包含监视器,调用参数均包含节点路径,对比:Chubby的API,handle Open(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(name of last child before id,true),(注意,设置了监视器),5),如果,id,之前不存在节点,返回步骤,2,6),等待通知,7),返回步骤,2,有且仅有一个,Client,可以获取到独占锁,如何使用ZooKeeper?,共享锁,1)id=create(“./locks/s-”,SEQUENCE|EPHEMERAL),2)getChildren(“./locks/”,false),3),如果,id,之前没有,x-,类型的节点,获取共享锁,退出,4)exists(name of the last x-before id,true),5),如果,id,之前不存在,x-,类型节点,返回步骤,2,6),等待事件通知,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,的监视器,监视器是一次性的,一次事件通知后就作废,性能,ZooKeeper,适用于主要,负载为读的应用场合,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!