Giter Site home page Giter Site logo

Comments (1)

EatApples avatar EatApples commented on August 22, 2024

一句话回答就是:可以,但是没必要。

在任务编排框架中,需要部署多个调度器来执行Job

考虑到集群模式下需要满足:

  • 负载均衡
  • 预防单点故障
  • 动态扩展

对于调度器,需要使用某些机制来达到这些效果。

要想达到这些效果,应该要满足:

  • 需要使用注册中心来协调
  • 需要使用分布式锁来同步
  • 需要使用消息传递来控制

我们这里使用Zookeeper,满足这些条件:

  • Zookeeper本身就是一个目录型的资源中心,常被用作注册中心
  • Zookeeper集群架构是单写多读,写动作是顺序一致性,本身就提供分布式锁服务。这里使用客户端Curator封装好的可重入的分布式锁服务
  • Zookeeper本身就有异步通知机制Watcher,这里使用客户端Curator封装好的更简易的监听机制

换句话说,ZooKeeper 在任务调度中有3个作用:

(一)资源中心:存储元数据
元数据包括静态数据与动态数据。
(1)实时抓取的Task 信息(静态数据)
(2)执行器实例信息(动态数据)。调度器运行时会查询获取。
(3)Job索引信息(动态数据)。调度器通过争抢之后,抢占该Job。Job的控制(用户控制,调度器执行Job的状态等)也通过这些信息交互。
(二)提供分布式锁服务
调度器Job获取是拉(pull)模式,抢占Job时需要分布式的锁。
(三)故障转移,高可用保障
通过ZooKeeper提供的 Watcher 机制,保证 Job 的执行高可用。

注意到, (一)资源中心的角色就是注册中心,当然可以使用其他来替换,例如 Eureka。
(二)分布式锁的服务当然也可以使用基于数据库的或基于Redis的。
(三)至于消息通知,ETCD 也能充当该角色(未验证)。

总的来说,zookeeper 一个能抵三个,如非必要,勿增实体。

from sia-task.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.