分布式任务调度平台Antares

分布式任务调度平台(Distributed Job Schedule Platform)

Antares特性

基于Quartz的分布式调度

  • 一个任务仅会被服务器集群中的某个节点调度,调度机制基于成熟的Quartz,antares内部会重写执行逻辑;

并行执行

  • 用户可通过对任务预分片,有效提升任务执行效率;

失效转移

  • 客户端实效转移:当某个客户端实例在执行任务中宕机时,其正在执行的分片将重新由其他客户端实例执行;

  • 服务器失效转移:当服务器集群中某个节点宕机时,其正在调度的任务将转移到其他节点去调度;

弹性扩容

  • 客户端扩容:客户端可通过增加应用实例,提升任务执行的效率;
  • 服务器扩容:服务器集群可通过增加节点,提升集群任务调度的服务能力;

进程级的应用实例

  • antares通过ip+进程号标识客户端应用实例,因此支持单机多应用实例部署;

管理控制台

  • 用户可通过控制台antares-tower对任务进行基本操作,如触发暂停监控等;

任务依赖

  • antares支持树形任务依赖,当某任务执行完成后,会通知其后置任务执行。

名称术语

  • 应用(App)

    用于标识分组,如用户服务订单服务等;

  • 应用实例(App Instance)

    某应用下的客户端实例,即某个进程实例

  • 任务(Job)

    即被调度的实体,仅会由某一服务器节点调度;

  • 任务实例(Job Instance)

    每当任务被触发时,则会生产一个任务实例,执行完成后,则为任务历史

  • 任务分片(Job Instance Shard)

    即任务的预分片配置,包含分片数分片参数,用户可通过客户端实例执行任务时被分配的分片项及其分片参数,自己实现分片逻辑;

  • 分片项(shardItem)、分片参数(shardParam)

    分片项(shardItem),即当应用实例任务执行时,被分配的任务下标,从0开始;分片参数,即任务下标对应的配置参数

应用场景

通常,对于有以下场景或需求时,可以考虑使用分布式任务调度

  • 需要保证任务执行的高可用性:即当执行任务的应用实例崩溃后,其他应用实例可以继续执行该任务;

  • 要求任务执行效率足够高:在业务数据量级比较大时,可以使用预分片配置来将数据进行逻辑分片,使得多个应用实例能并行执行任务分片,以提升任务的执行效率。

Antares架构

Antares整体架构

antares-arch.png

Antares中的任务状态机

job-state-machine.png

其他

最近文档可见Github

转载于:https://my.oschina.net/indestiny/blog/861256

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值