对分布式任务调度的理解

1.什么是分布式任务调度

分布式任务调度就是在分布式环境下,定时任务的管理与执行

2.分布式任务调度的特性

  • 分布式环境下,一个任务被部署在多实例的情况下,只有一个定时任务可执行
  • 一个定时任务可以分成多个小任务并行执行(通常称为切片)

3.以Elastic-Job-lite框架为例说明

1) 在分布式环境中,任务能够按指定的调度策略执⾏,并且能够避免同⼀任务多实例重复执⾏

Elastic-Job依赖于Zookeeper进⾏分布式协调,每个Elastic-Job的任务执⾏实例App作为Zookeeper的客户端来操作ZooKeeper的znode,多个实例同时创建/leader节点,/leader节点只能创建⼀个,后创建的会失败,创建成功的实例会被选为leader节点执行任务

2)去中心化
  • 任务执行节点对等
  • 任务执行由节点自触发,没有中心调度节点触发
  • 服务自发现,通过注册中心自发现
  • 执行节点非固定
3) 任务分片

任务分片就是将一个定时任务分成多个小任务,每个小任务可以并发执行,具体的分片策略也可以自由制定,分⽚和任务本身是通过⼀个注册中⼼协调的。

4) 弹性扩容,高可用
  • 新增加⼀个运⾏实例,如job3,它会⾃动注册到注册中⼼,注册中⼼发现新的服务上线,注册中⼼会通知ElasticJob 进⾏重新分⽚
  • 如果所有的节点挂掉,只剩下⼀个节点,所有分⽚都会指向剩下的⼀个节点,这也是ElasticJob的⾼可⽤

你可能感兴趣的:(对分布式任务调度的理解)