zoukankan      html  css  js  c++  java
  • ZooKeeper 介绍

    Zookeeper用途场景:

    Zookeeper分布式服务框架是Apache Hadoop的一个子项目,主要是用来解决分布式应用经常遇到的一些数据管理问题。如:集群管理,统一命名服务,分布式配置管理,分布式消息队列,分布式说,分布式通知协调等。

    越来越多的分布式开始依赖ZK,比如Storm,Hbase等

    Zookeeper对分布式开发带来很多遍历,用ZK独有的特性巧妙解决很多难题,很多分布式技术用到Zookeeper特性,如Hbase,火爆的Storm。

    Zookeeper体系架构:

    数据模型、节点

    类似文件系统的目录型结构,同hadoop、HDFS:

    Watches

    ZK对Node的增删改查都可以除法监听

    watch事件是一次性触发器,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher

    watch事件异步发送至观察者

    watch是一次性除法的并且在获取watch事件和设置新watch之间有延迟,所以不能可靠的观察到节点的每一次变化

    客户端监视一个节点,先获取watch事件,再发现节点的数据变化

    watch事件顺序对应于Zookeeper服务所见数据更新的顺序

    Zookeeper在Hadoop平台典型应用

    Storm集群:Zookeeper作为nimbus(mastter)和supervisor(slave)的中间枢纽,保存Storm集群和作业的所有信息,并负责nimbus和supervisor的全部通信,Fast fill、

    Hbase集群:Zookeeper作为协调器,为HBase提供了稳定服务和fall over机制。

    应用三大块:

    Storm应用开发、Storm集群监控

    MapReduce应用开发

    Hbase应用开发

    流行的应用场景:

    分布式配置管理

    发布与订阅所谓的配置管理,就是把数据发布到zk节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新,例如全局配置信息,地址列表等就会非常适合使用。

    Name Service

    这个主要是作为分布式命名服务,通过调用zk的create node api,能够很容易常见一个全局唯一的path,这个path可以作为一个名称。

    分布式通知协调

    zookeeper中特有的watcher注册与异步通知机制,能够很好地实现分布式环境下不同系统之间的通知与协调,实现对数据变更的实时处理。

    使用方法 通常是不同系统都对ZK上的znode进行watch,监听znode的变化,其中一个系统update了znode,另一个系统受到通知,并协同进行处理

    分布式锁

    分布式锁,这个主要得益于Zookeeper为我们保证了数据的强一致性

    锁服务可以分为两类,一个是保持独占,另一个是控制时序

    集群管理

    Hbase Master选举是经典的使用场景

    分布式队列

    一种是常规的先进先出队列,另一种是等到队列成员狙击之后按统一按序执行,对于第二种先进先出队列,增加分布式锁服务控制时序场景

  • 相关阅读:
    php基础设计模式(注册树模式、工厂模式、单列模式)
    微信公众平台实现获取用户OpenID的方法
    如何成为一名优秀的工程师(语义篇)
    操作系统死锁原因及必要条件
    Word中怎样删除分节符而不影响前节页面设置
    当代码变更遇上精准测试的总结
    Windows网络命令
    linux shell编程
    Oracle远程登录命令
    数据库别名AS区别
  • 原文地址:https://www.cnblogs.com/littlepage/p/10808285.html
Copyright © 2011-2022 走看看