Zookeeper中主从模式结构场景练习

下面这个部分,我们将通过zkCli工具来实现简单的主从结构模式,主从模式结构设计到了下面的几个角色。


Master

Master监视着新的worker和tasks,并且分配任务到workers上

Worker

Worker注册到系统中,好让master知道他们是可以来执行任务的

Client

Client用来创建任务并且等待系统的响应,

 

TheMaster Role

由于只能有一个master,所以只能有一个进程来获得主控权去成为master,为了表示master,我们来创建一个临时的节点叫做/master


上面操作中,我们创建了一个临时的节点/master,并且让该节点保存了一些主机的信息,上面的-e参数表明了我们创建的是一个临时的节点。


此时我们在开启另外一个进程,执行下面的操作




当再次创建/master时,告诉我们已经存在,此时,我们在此节点上创建一个监听,用stat命令操作,此时关闭刚才的进程,我们在当前的进程中会看到如下的提示内容


监视告诉我们master节点已经删除了。





Workers,.tasksand assignment


在我们进一步的讨论workers和client之前,我们先创建几个重要的节点信息






上面的三个节点都是永久性的节点并且没有包含数据,我们想用这些节点来告诉我们那些workers是可用的,当我们要分配工作的时候给他们。

在实际的应用中,这些节点既可以被主master创建,也可以被其他的引导程序来创建。下面我需要对这些节点添加一个监听。




在上面中,我们利用可选的true参数来添加监听,效果与stat命令一样。


TheWorker Role

首先,worker需要通知master它是可以执行task的,因此我们创建一个临时的节点来代表worker的子节点。注意到workers下面创建了子节点,我们可以从监听中看到相应的输出信息。




接下来,worker需要创建一个父节点/assign/worker1.example.com,并且对他进行监听的操作




Worker现在已经开始受到作业了,接下来我们将会讨论客户端的角色。

 

 

Client的角色

Client添加任务到系统中。这个例子的目的并不在于任务是否真正的被执行了。在这里我们假设客户端让主从模式系统执行了一个cmd的命令,为了向系统中添加任务,客户端需要执行以下操作。




一旦task节点被创建,将会看到如下的输出信息




接下来master检查新的任务,得到可以利用的worker信息,并且分配任务




 

紧接着worker收到了监听的信息,如下所示





Worker接下来检查taske信息



一旦worker完成了正在执行的任务,他就会添加一个状态的节点到/asks

接下来客户端收到了通知,就开始检查结果



客户端检查状态节点的内容决定是否成功的被执行,如果被执行的话,那么内容将会是done信息。当然了也可能会涉及到其他的分布式系统,但不管是什么,机制都是一样的,毕竟zookeeper的本质都是一样的。


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值