ZooKeeper完全解析(四) 使用ZooKeeper实现分布式作业调度系统之实现原理

  在上一篇中,我们讲解了如何使用Java来操作ZooKeeper,链接为 ZooKeeper完全解析(三) 使用Java操作ZooKeeper,这一篇中,我们将会讲解使用ZooKeeper来实现一个分布式的作业调度系统的原理。

  众所周知,ZooKeeper可以看成一个分布式的文件系统,所以可以根据这个文件系统来完成一些角色的分配与任务的分配,比如分布式的作业调度系统。

  试想一下,一个作业调用系统需要几种角色呢?简单来说,需要三种。

    1、执行任务的角色,我们把它称为 slave 节点,也就是,当发现有任务分配到自己的时候,执行此任务,然后改变此任务的状态

    2、分配任务的角色,我们把它称为 master 节点,当发现有新任务的时候,分配给空闲的 slave 节点,让 slave 节点去执行

    3、剩下的当然就是产生新任务的角色,也就是我们的使用者。当需要使用系统的时候,写入新的 job ,然后就等待这个 job 的状态改变即可。

  说完了角色之后,就是分配节点,也就是 /assign 节点, slave 节点不仅会在 /slave 节点下面来创建一个顺序节点,也会在 /assign 中创建一个节点,当 master 发现有任务的时候,将 job 分配到 /assign 的 /slave 节点下面,可能有人有疑问?为什么不直接分配到 /slave 节点里面呢?因为 /slave 一定是一个顺序的、临时的节点(当对应slave节点宕掉的时候会自动删除࿰

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值