

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ZooKeeper 典型应用场景一览数据ZooKeeper 典型应用场景一览数据发布与订阅(配置中心发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据发布ZK节点上,供订阅者动态获取会主动来获取一次配置,同时,在节点上 一个Watcher,这样一来,以后每次配置有更新的时 分布式日志收集系统。这个系统的 工作是收集分布在不同机器的日志。收集器通常是按照应用来分配收集任务单元,因此需要在ZK 上创建一个以应用名作为path 的节点P,并将这个应用的所有机器ip,以子节点的形式 到节点 P 上,这样一来就能够实现机器变动的时候,能够实时通系统中有些信息需要动态获取,并且还会存在人工手动去修
2、改这个信息的发问。通常是 出接口,例如JMX接口,来获取一些运行时的信息。引入ZK之后,就不用自己实现一套方案了,只要将这些信息存放到指定的 ZK 节点上即可。负载均衡消息中间件中发布者和订阅者的负载均衡,linkedin开源的Q和阿里开源的metaq都是通 生产者负载均衡:metaq发送消息的时候,生产者在发送消息的时候必须选择一台broker上的一个分区来发送消息,因此 metaq 在运行过程中,会把所有broker 和对应的分区信息全部到ZK指定节点上默认的策略是一个依次轮询的过程,生产者在通过ZK获取分区列表之后,会按照brokerId和partition值得注意的是,ZK此,也非常欢
3、迎读者 你在 ZK 使用上的奇技 巧。每个分区针对同一个group只挂载一个消费者 每个分区针对同一个group只挂载一个消费者 过 命名服务(Naming 式服务框架中的服务地址列表。通过调用 ZK 提供的创建节点的 API,能够很容易创建一个全局唯一的 path,这个path就可以作为一个名称。阿里巴开源的分布式服务框架Dubbo中使用ZooKeeper来作为其命名服务址列表,点击这里查看Dubbo 开源项目。在Dubbo 实现中服务提供者在启动的时候,向ZK上的指定节点/dubbo/$serviceName/providers的URL地址,这个操作就完成了服务的发布。下的提供者URL地址
4、,并 /下写入自己的URL注意,所有向ZK上另外,Dubbo 还有针对服务粒度的分布式通知/协调ZooKeeper中特有watcher协调,实现对数据变更的实时处理。使用方法通常是不同系统都对 ZK 上同一个znode 进行znode的变化(包括znode本身内容及子节点的),其中一个系统update了znode,那么另一个系统行相应的推送工作。管理 在控制台作的一些操作,实际上是修改了ZK上某些节点的状态,而 ZK就把这些变化通知给他们 Watcher的客户端,即推送系统,于是,作出相应的推送任务另一种工作汇报模式:一些类似于任务分发系统,子任务启动后,到 zk来总之,使用zookeeper
5、集群管理与 集群机器 :这通常用于那种对集群中机器状态,机器 率有较高要求的场景,能够快速对集群中机器变化作出响应。这样的场景中,往往有一个 系统,实时检测集群机器是否存活。过去的做法通常是: 系统通过某种 (比如 )定时检测每个机器,或者每个机器自己定时 客户端在节点x 创建EPHEMERAL类型的节点,一旦客户端和服务器的会话结束或过期,那么该节点就会系统在 /clusterServers 节点上一个Watcher,以后每动态加机器,那么就往/clusterServers 下创建一个EPHEMERAL类型的节点:/clusterServers/hostname. 这样, 在分布式环境中,相
6、同的业务应用分布在不同的机器上,有些业务逻辑(例如一些耗时的计算,网络I/O少重复劳动,提高性能,于是这个master 便是这种场景下的碰到的主要问题。利用ZooKeeper 的强一致性,能够保证在分布式高并 况下节点创建的全局唯一性,即:同时有多个客户端请求/currentMaster节点,最终一定只有一个客户端请求能够创建成功。利用这个特性,就在 Id-1 Id-2 -3每次选取序列号最小的那个机器作为Master,如果这个机器挂了,由于他创建的节点会马上小时,那么之后最小的那个机器就是Master了。引数据一致。因此让集群中的Master来进行全量索引的生成,然后同步到集群中其它机器。另
7、外, 的容灾措施是,可以随时进行手动指定master,就是说应用在zk在无法获取master信息时,可以通过比如http方式,向一个地方获取master。在Hbase中,也是使用ZooKeeper来实现动态HMaster。在Hbase实现中,会在一些ROOT表的地址和HMaster的地址,HRegionServer也会把自己以临时节的存活状态,同时,一旦HMaster 出现问题,会重新出一个HMaster 来运行,从而避免了 HMaster的单点问题分布式锁分布式锁,这个主要得益于ZooKeeper为 保证了数据的强一致性。锁服务可以分为两类,一个是保zk上的一个znodecreateznode的方式来实现。所有客户端都去创建 /distribute_lock 节点,最终成功创建的那个客户端也即拥有了这把锁。做法和上面基本类似,只是这里/distribute_lock已经预先存在,客户端在它下面创建临时有序节点(这个可以通过节点的属性控制:CreateMode.EPHEMERAL_SEQUENTIAL来指定)。Zk 的 :1:2:3 :1:2:3:4:分布式队列 第二种队列其实是在FIFO队列的基础上作了一个增强。通常可以在 /queue 这个znode下预先建立一个/queue/num节点,并且赋值为n(或者直接给/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外墙涂料购销合同书
- 2025年安徽财贸职业学院单招职业倾向性考试题库附答案
- 市场营销策略实战应用作业指导书
- 项目策划与管理操作手册
- 2025年安徽城市管理职业学院单招职业技能考试题库汇编
- 2025年内蒙古货运车从业资格证考试内容
- 2025年安徽马钢技师学院单招职业技能测试题库带答案
- 建筑总承包合同书
- 建设工程施工承包协议书
- 招投标管理论文
- DCMM解析版练习试题附答案
- 网络安全风险评估行业研究报告
- 四川政采评审专家入库考试基础题复习测试卷附答案
- 2024解析:第十二章滑轮-基础练(解析版)
- 《社会应急力量建设基础规范 第2部分:建筑物倒塌搜救》知识培训
- 国有企业管理人员处分条例培训2024
- 浙江省宁波市2025届高三上学期一模考试数学试卷 含解析
- 代理记账业务内部规范(三篇)
- 腰椎间盘突出症课件(共100张课件)
- 委托调解民事纠纷协议书合同
- 中医四季养生之道课件
评论
0/150
提交评论