分布式任务调度
文章平均质量分 69
鲍倩和鲍新春
这个作者很懒,什么都没留下…
展开
-
分布式任务调度Schedulerx2.0 Map模型作业执行流程
Schedulerx2.0提供了多种分布式编程模型,下面以一个Map模型的作业来说明它的执行流程。原创 2022-09-02 09:59:28 · 892 阅读 · 0 评论 -
分布式任务调度Schedulerx2.0工作原理
Schedulerx2.0是阿里巴巴开发的一个基于akka的分布式任务调度框架,提供分布式执行、多种任务类型、统一日志等功能,用户只要依赖schedulerx-worker这个jar包,通过schedulerx2.0提供的编程模型,简单几行代码就能实现一套高可靠可运维的分布式执行引擎。本文主要讲解schedulerx-worker的工作原理。...原创 2022-09-01 10:46:10 · 2262 阅读 · 0 评论 -
Elastic-job支持基于有向无环图(DAG)的作业依赖技术方案
Elastic-job是当当网架构师基于Zookepper、Quartz开发并开源的一个Java分布式定时任务,解决了Quartz不支持分布式的弊端。Elastic-job除了支持单个作业按照规定的时间触发外,还可以将多个作业通过有向无环图(DAG)的方式生成依赖关系,然后按照DAG中的依赖关系依次调度执行这些作业。下面说一下实现这个功能的技术方案。作业的定义假设在一个Elastic-job集群中,有三个作业A,B,C。它们的依赖关系依次是A-->B-->C。每个作业都有...原创 2022-04-10 21:48:51 · 1380 阅读 · 0 评论 -
xxl-job的作业触发机制
XXL-JOB是一个轻量级分布式任务调度平台,采用集中式的触发方式。由注册模块接收用户的作业信息并写入到数据库中,然后服务端启动两个线程scheduleThread、ringThread来触发任务一、scheduleThreadscheduleThread的执行代码如下:scheduleThread = new Thread(new Runnable() { @Override public void run() {原创 2021-08-30 00:01:55 · 1264 阅读 · 0 评论 -
一篇文章看懂Elastic-Job的执行原理
elastic-job是一个无中心化的分布式定时调度框架,思路来源于Quartz的基于数据库的高可用方案。但是由于Quartz没有分布式扩容、高可用等能力,所以在系统中引进了Zookeeper,用Zookeeper来实现分布式管理的功能,在高可用方案的基础上增加了弹性扩容和数据分片的思路,以便于更大限度的利用分布式服务器的资源。一、QuartzQuartz说由OpenSymphony提供的强大的开源任务调度框架,用来执行定时任务。比如每天凌晨三点钟需要从数据库导出数据,这时候就需要一个任务调度框架,原创 2021-07-11 23:09:49 · 2710 阅读 · 1 评论 -
Elastic-Job-Lite 的失效转移机制
Elastic-Job-Lite作为一个分布式任务调度组件,当某个执行的机器出现宕机故障时,需要将这个机器上没有执行的任务分配到其它机器上执行,这就是Elastic-job的失效转移机制。下面详细介绍一下Elastic-job-lite的失效转移机制Elastic-Job-Lite处理失效机制的几个类FailoverService,作业失效转移服务。 FailoverNode,作业失效转移数据存储路径。 FailoverListenerManager,作业失效转移监听管理器。一、作业节点失效监原创 2021-06-27 22:08:56 · 723 阅读 · 2 评论 -
Elastic-Job-Lite 的元数据管理
Elastic-Job-Lite作为一个分布式任务调度组件,通过Zookeeper来实现元数据的管理,下面介绍一下Elastic-Job-Lite的几个重要的元数据类。一、ConfigurationServiceConfigurationService是分布式作业配置服务,用来记录作业的配置信息。在zookeeper中的目录结构是 $jobName/config 对应的值是json格式的字符串,里面记录了本次作业的配置 在 Zookeeper 看一个作业的配置节点数据存储...原创 2021-06-26 12:50:51 · 280 阅读 · 2 评论 -
Elastic-Job-Lite 执行流程
Elastic-Job-Lite是一个被广泛使用的分布式任务调度框架,下面介绍一下运用Elastic-Job-Lite来执行分布式任务的例子public class MyElasticJob implements SimpleJob { public void execute(ShardingContext context) { System.out.println(context.toString()); switch (context.getSharding原创 2021-05-23 23:40:27 · 613 阅读 · 0 评论 -
Elastic-Job-Lite分片策略
Elastic-Job-Lite在运行时会对作业进行分片,通过继承JobShardingStrategy接口#sharding(...)来执行作业分片的操作public interface JobShardingStrategy { /** * 作业分片. * * @param jobInstances 所有参与分片的单元列表 * @param jobName 作业名称 * @param shardingTotalCount 分片总原创 2021-05-21 20:13:57 · 423 阅读 · 0 评论