首页 > 其他 > 详细

2、使用Zookeeper实现Master-Worker协同

时间:2020-07-18 14:14:45      阅读:50      评论:0      收藏:0      [点我收藏+]

1、master-worker架构

master-worker是一个广泛使用的分布式架构。master-worker架构中有一个master负责监控worker的状态,并为worker分配任务

  • 在任何时刻,系统中最多只能有一个master,不可以出现两个master的情况,多个master共存会导致脑裂;
  • 系统中除了处于active状态的master还有一个backup master,如果active master失败了,backup master可以很快的进入active状态;
  • master实时监控worker的状态,能够及时收到worker成员变化的通知。master在收到worker成员变化的时候,通常重新进行任务的重新分配

技术分享图片

 

示例1:HBase

HBase采用的是master-worker的架构。HBase是系统中的master,HRegionServer是系统中的worker。HMBase监控HBase Cluster中worker的成员变化,把region分配给各个HRegionServer。系统中有一个HMaster处于active状态,其他HMaster处于备用状态

技术分享图片

 

示例2:Kafka

一个Kafka集群由多个broker组成,这些broker是系统中的worker。Kafka会从这些worker选举出一个controller,这个controller是系统中的master,负责把topic partition分配给各个broker

 

技术分享图片

 

示例3:HDFS

HDFS采用的也是master-worker架构,NameNode是系统中的master,DataNode是系统中的worker。NameNode用来保存整个分布式文件系统的metadata,并把数据块分配给cluster中的DataNode进行保存

技术分享图片

 

 

如何使用ZooKeeper实现master-worker

1、使用一个临时节点/master表示master。master在行使master的职能之前,首先要创建这个znode。如果能创建成功,进入active状态,开始行使master职能。否则的话,进入backup状态,使用watch机制监控/master。假设系统中有一个active master和一个backup master。如果active master失败,它创建的/master就会被ZooKeeper自动删除。这时backup master就会收到通知,通过再次创建/master节点成为新的active master

2、worker通过在/workers下面创建临时节点来加入集群

3、处于active状态的master会通过watch机制监控/worker下面znode列表来实时获取worker成员的变化

技术分享图片

 

 

1、创建workers

技术分享图片

 

2、创建master

active master

技术分享图片

 

 

backup master

技术分享图片

 

3、master监控系统中的workers

监控

技术分享图片

 

 

创建新的workers节点

技术分享图片

 

 

获取到watch事件

技术分享图片

 

 

 

技术分享图片

 

2、使用Zookeeper实现Master-Worker协同

原文:https://www.cnblogs.com/liushoudong/p/13334847.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!