美文网首页
9、zk在大型分布式开源软件的应用

9、zk在大型分布式开源软件的应用

作者: 小manong | 来源:发表于2019-05-03 22:31 被阅读0次
    • 在工业实践中由于zk便捷的使用方式、卓越的运行性能以及良好的稳定性,已经被广泛的应用在越来越多的大型分布式系统中,用来解决诸如配置管理、分布式通知与协调、集群管理和master选举等一些列分布式问题。
    1、hadoop
    • Hadoop核心是HDFS和MapReduce(YARN),分别用于海量数据的存储和计算。
    • 在hadoop中,zk主要用于实现HA,这部分逻辑主要集中在Hadoop Common的HA模块中,HDFS的NameNode与YARN的ResourceManager都是基于HA模块来实现自己的HA功能的。同时,在YARN中又特别提供了zk来存储应用的运行状态。

    (1)使用zk进行master选主实现ResourceManager高可用

    • 为了解决ResourceManager单点问题,YARN设计了一套Active/Standy模式的HA架构。运行期间,会有多个ResourceManager并存,并且只有一个ResourceManager处于Active状态,另外的则处于Standy状态,上Active节点无法工作(机器挂掉或者重启时候)其余处于Standy状态的节点则通过竞争选举产生新的Active节点

    (1)创建锁节点
    (2)注册watcher监听
    (3)主备切换

    (2)使用zk存储ResourceManager状态

    • 用zk保存状态,实现了分布式数据的一致性(前提是数据量不大)
    2、HBase
    • HBase针对数据写入具有强一致性的特性,甚至包括索引列也都要实现强一致性。在HBase中使用zk来完成对整个系统的分布式协调工作。zk是串联起HBase集群和client的关键所在。
    3、Kafka
    • 在Kafka中使用zk来作为服务的注册中心(发布订阅)和负载均衡。
    4、Dubbo
    • dubbo中使用zk作为注册中心,用于服务的注册和订阅
    5、其他采用了zk的开源软件canal、otter、阿里终搜等

    相关文章

      网友评论

          本文标题:9、zk在大型分布式开源软件的应用

          本文链接:https://www.haomeiwen.com/subject/ivpnnqtx.html