作业调度
weixin_42073629
这个作者很懒,什么都没留下…
展开
-
Elastic-Job-Cloud 源码分析 —— 高可用
1. 概述本文主要分享Elastic-Job-Cloud 高可用。一个高可用的 Elastic-Job-Cloud 组成如下图:Mesos Master 集群 Mesos Slave 集群 Zookeeper 集群 Elastic-Job-Cloud-Scheduler 集群 Elastic-Job-Cloud-Executor 集群本文重点分享 Elastic-Job-Cloud-Scheduler 如何实现高可用。Mesos Master / Mesos Slave / .原创 2020-07-26 01:14:53 · 206 阅读 · 0 评论 -
Elastic-Job-Cloud 源码分析 —— 作业失效转移
1. 概述本文主要分享Elastic-Job-Cloud 作业失效转移。对应到 Elastic-Job-Lite 源码解析文章为《Elastic-Job-Lite 作业作业失效转移》。你需要对《Elastic-Job-Cloud 源码分析 —— 作业调度(一)》有一定的了解。当作业任务在 Elastic-Job-Cloud-Executor 异常崩溃时,该任务在下次调度之前不会被重新执行。开启失效转移功能后,该作业任务会立即被 Elastic-Job-Cloud-Scheduler 重新调度,.原创 2020-07-26 01:14:42 · 647 阅读 · 0 评论 -
Elastic-Job-Cloud 源码分析 —— 本地运行模式
1. 概述本文主要分享Elastic-Job-Cloud 本地运行模式,对应《官方文档 —— 本地运行模式》。有什么用呢?引用官方解答:在开发 Elastic-Job-Cloud 作业时,开发人员可以脱离 Mesos 环境,在本地运行和调试作业。可以利用本地运行模式充分的调试业务功能以及单元测试,完成之后再部署至 Mesos 集群。本地运行作业无需安装 Mesos 环境。???? 是不是很赞 + 1024?!本文涉及到主体类的类图如下(打开大图):2. 配置Loc.原创 2020-07-26 01:14:30 · 403 阅读 · 0 评论 -
Elastic-Job-Cloud 源码分析 —— 作业调度(二)
1. 概述本文主要分享Elastic-Job-Cloud 云作业应用配置和云作业配置变更对作业调度的影响,作为《Elastic-Job-Cloud 源码分析 —— 作业调度(一)》的补充内容。所以需要你对作业调度已经有一定了解的基础上。2. 云作业操作我们可以使用运维平台或 Restful API 对云作业进行操作。前者是对后者的界面包装,如下图所示:2.1 注册云作业配置《Elastic-Job-Cloud 源码分析 —— 作业配置》「3.1.1 操作云作业配置」有详细解析。.原创 2020-07-26 01:14:19 · 203 阅读 · 0 评论 -
Elastic-Job-Cloud 源码分析 —— 作业调度(一)
1. 概述本文主要分享Elastic-Job-Cloud 调度主流程。对应到 Elastic-Job-Lite 源码解析文章如下:《Elastic-Job-Lite 源码分析 —— 作业初始化》 《Elastic-Job-Lite 源码分析 —— 作业执行》 《Elastic-Job-Lite 源码分析 —— 作业分片》如果你阅读过以下文章,有助于对本文的理解:《基于Mesos的当当作业云Elastic Job Cloud》 《由浅入深 | 如何优雅地写一个Mesos Framewor.原创 2020-07-26 01:13:55 · 536 阅读 · 0 评论 -
Elastic-Job-Cloud 源码分析 —— 作业配置
1. 概述本文主要分享Elastic-Job-Cloud 作业配置。如果你阅读过以下文章,有助于对本文的理解:《官方文档 —— RESTFUL API》 《Elastic-Job-Lite 源码分析 —— 作业配置》 《由浅入深 | 如何优雅地写一个Mesos Framework》本文涉及到主体类的类图如下(打开大图):黄色的类在elastic-job-common-core项目里,为 Elastic-Job-Lite、Elastic-Job-Cloud公用作业配置类。...原创 2020-07-26 01:13:08 · 282 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 运维平台
1. 概述本文主要分享Elastic-Job-Lite 运维平台。内容对应《官方文档 —— 运维平台》。运维平台实现上比较易懂,就不特别啰嗦的解析,简略说下每个类的用途和 UI 上的关联。2. Maven模块 elastic-job-common-restfulRestfulServer 内嵌服务器,基于 Jetty 实现 GSONProvider 后端接口 JSON 格式化 RestfulExceptionMapper 异常映射 WwwAuthFilter 授权认证 Filter.原创 2020-07-26 01:12:55 · 296 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 作业监控服务
1. 概述本文主要分享Elastic-Job-Lite 作业监控服务。内容对应《官方文档 —— DUMP作业运行信息》。使用Elastic-Job-Lite过程中可能会碰到一些分布式问题,导致作业运行不稳定。由于无法在生产环境调试,通过dump命令可以把作业内部相关信息dump出来,方便开发者debug分析; 另外为了不泄露隐私,已将相关信息中的ip地址以ip1, ip2…的形式过滤,可以在互联网上公开传输环境信息,便于进一步完善Elastic-Job。涉及到主要类的类图如下(打开大图..原创 2020-07-25 11:12:40 · 244 阅读 · 1 评论 -
Elastic-Job-Lite 源码分析 —— 自诊断修复
1. 概述本文主要分享Elastic-Job-Lite 自诊断修复。在分布式的场景下由于网络、时钟等原因,可能导致 Zookeeper 的数据与真实运行的作业产生不一致,这种不一致通过正向的校验无法完全避免。需要另外启动一个线程定时校验注册中心数据与真实作业状态的一致性,即维持 Elastic-Job 的最终一致性。涉及到主要类的类图如下(打开大图):在 Elastic-Job-lite 里,调解分布式作业不一致状态服务( ReconcileService ) 实现了自诊断修复...原创 2020-07-25 11:10:05 · 245 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 作业监听器
1. 概述本文主要分享Elastic-Job-Lite 作业监听器。涉及到主要类的类图如下(打开大图):绿色监听器接口 ElasticJobListener,每台作业节点均执行。 粉色监听器接口 AbstractDistributeOnceElasticJobListener,分布式场景中仅单一节点执行。 蓝色类在com.dangdang.ddframe.job.lite.internal.guarantee里,保证分布式任务全部开始和结束状态。 AbstractDistrib...原创 2020-07-25 11:07:37 · 394 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 作业事件追踪
1. 概述本文主要分享Elastic-Job-Lite 作业事件追踪。另外,Elastic-Job-Cloud 作业事件追踪和 Elastic-Job-Lite 基本类似,不单独开一篇文章,记录在该文章里。如果你对 Elastic-Job-Cloud 暂时不感兴趣,可以跳过相应部分。Elastic-Job 提供了事件追踪功能,可通过事件订阅的方式处理调度过程的重要事件,用于查询、统计和监控。Elastic-Job 目前订阅两种事件,基于关系型数据库记录事件。涉及到主要类的类图如下(打开...原创 2020-07-25 11:02:01 · 574 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 作业失效转移
1. 概述本文主要分享Elastic-Job-Lite 作业失效转移。当作业节点执行作业异常崩溃时,其所分配的作业分片项在下次重新分片之前不会被重新执行。开启失效转移功能后,这部分作业分片项将被其他作业节点抓取后“执行”。为什么此处的执行打引号呢?????下文我们会分享到噢,卖个关子。笔者对失效转移理解了蛮久时间,因此引用官方对它的解释,让你能更好的理解:来源地址:https://my.oschina.net/u/719192/blog/506062失效转移: 运行中的作业服务器崩溃不会原创 2020-07-25 10:50:08 · 246 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 作业分片
1. 概述本文主要分享Elastic-Job-Lite 作业分片。涉及到主要类的类图如下(打开大图):粉色的类在com.dangdang.ddframe.job.lite.internal.sharding包下,实现了 Elastic-Job-Lite 作业分片。 ShardingService,作业分片服务。 ShardingNode,作业分片数据存储路径。 ShardingListenerManager,作业分片监听管理器。你行好事会因为得到赞赏而愉悦同理,开源项目...原创 2020-07-25 10:42:50 · 294 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 作业分片策略
1. 概述本文主要分享Elastic-Job-Lite 作业分片策略。涉及到主要类的类图如下(打开大图):你行好事会因为得到赞赏而愉悦同理,开源项目贡献者会因为 Star 而更加有动力为 Elastic-Job 点赞!传送门2. 自带作业分片策略JobShardingStrategy,作业分片策略接口。分片策略通过实现接口的#sharding(...)方法提供作业分片的计算。public interface JobShardingStrategy { ...原创 2020-07-25 09:56:37 · 226 阅读 · 1 评论 -
Elastic-Job-Lite 源码分析 —— 主节点选举
1. 概述本文主要分享Elastic-Job-Lite 主节点选举。建议前置阅读:《Elastic-Job-Lite 源码分析 —— 注册中心》 《Elastic-Job-Lite 源码分析 —— 作业数据存储》 《Elastic-Job-Lite 源码分析 —— 注册中心监听器》涉及到主要类的类图如下(打开大图):粉色的类在com.dangdang.ddframe.job.lite.internal.election包下,实现了 Elastic-Job-Lite 主节点...原创 2020-07-25 09:49:17 · 563 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 注册中心监听器
1. 概述本文主要分享Elastic-Job-Lite 注册中心监听器。建议前置阅读:《Elastic-Job-Lite 源码分析 —— 注册中心》涉及到主要类的类图如下(打开大图):你行好事会因为得到赞赏而愉悦同理,开源项目贡献者会因为 Star 而更加有动力为 Elastic-Job 点赞!传送门2. ListenerManagerListenerManager,作业注册中心的监听器管理者。管理者两类组件:监听管理器 注册中心连接状态监听器其中监听管理...原创 2020-07-25 09:41:15 · 207 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 作业数据存储
1. 概述本文主要分享Elastic-Job-Lite 作业数据存储。涉及到主要类的类图如下(打开大图):你行好事会因为得到赞赏而愉悦同理,开源项目贡献者会因为 Star 而更加有动力为 Elastic-Job 点赞!传送门2. JobNodePathJobNodePath,作业节点路径类。作业节点是在普通的节点前加上作业名称的前缀。在 Zookeeper 看一个作业的数据存储:[zk: localhost:2181(CONNECTED) 65] ls /el...原创 2020-07-25 09:34:45 · 209 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 注册中心
1. 概述本文主要分享Elastic-Job-Lite 注册中心。涉及到主要类的类图如下(打开大图):黄色的类在elastic-job-common-core项目里,为 Elastic-Job-Lite、Elastic-Job-Cloud公用注册中心类。 作业节点数据访问类( JobNodeStorage )的在主节点执行操作、在事务中执行操作两个方法和注册中心协调分布式服务有关系,从《Elastic-Job-Lite 源码解析 —— 作业数据存储》摘出来,放本文解析。你行...原创 2020-07-22 23:58:43 · 362 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 作业执行
1. 概述本文主要分享Elastic-Job-Lite 作业执行。涉及到主要类的类图如下(打开大图):黄色的类在elastic-job-common-core项目里,为 Elastic-Job-Lite、Elastic-Job-Cloud公用作业执行类。2. Lite调度作业Lite调度作业( LiteJob ),作业被调度后,调用#execute()执行作业。为什么是 LiteJob 作为入口呢?在《Elastic-Job-Lite 源码分析 —— 作业初始化...原创 2020-07-22 23:56:24 · 409 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 作业配置
1. 概述本文主要分享Elastic-Job-Lite 作业配置。涉及到主要类的类图如下(打开大图):黄色的类在elastic-job-common-core项目里,为 Elastic-Job-Lite、Elastic-Job-Cloud公用作业配置类。2. 作业配置一个作业( ElasticJob )的调度,需要配置独有的一个作业调度器( JobScheduler ),两者是1 : 1的关系。这点大家要注意下,当然下文看代码也会看到。作业调度器的创建可以配置四个参...原创 2020-07-22 23:36:05 · 498 阅读 · 0 评论 -
Elastic-Job-Lite 源码分析 —— 作业初始化
1. 概述本文主要分享Elastic-Job-Lite 作业配置。涉及到主要类的类图如下(打开大图):黄色的类在elastic-job-common-core项目里,为 Elastic-Job-Lite、Elastic-Job-Cloud公用作业配置类。另外建议你已经( 非必须 ):阅读过《官方文档 —— 配置手册》 运行过JavaMain.java2. 作业配置一个作业( ElasticJob )的调度,需要配置独有的一个作业调度器( JobScheduler ...原创 2020-07-22 23:36:18 · 303 阅读 · 2 评论 -
分布式任务调度的解决方案
简介随着系统规模的发展,定时任务数量日益增多,任务也变得越来越复杂,尤其是在分布式环境下,存在多个业务系统,每个业务系统都有定时任务的需求,如果都在自身系统中调度,一方面增加业务系统的复杂度,另一方面也不方便管理,因此需要有一个任务平台对分散的任务进行统一管理调度,基于目前的情况,任务平台需要支持以下几个方面:1、任务统一管理,提供图形化界面对任务进行配置和调度。2、任务并发控制,同...原创 2020-04-28 03:28:13 · 390 阅读 · 0 评论