源码分析ElasticJob专栏
文章平均质量分 92
源码分析ElasticJob研究系列
主要要两个学习目标:
1)了解分布式调度平台ElasticJob的实现原理。
2)掌握curator开源框架操作ZK。
中间件兴趣圈
《RocketMQ技术内幕》一书作者、RocketMQ开源社区优秀布道师、CSDN2020博客之星TOP2,主打成体系剖析java中间件,已发布RocketMQ、Kafka、Dubbo、Sentinel、Canal、ElasticJob、ElasticSearch等15个专栏。
展开
-
源码分析Elastic-Job前置篇:Spring自定义命名空间原理
在Spring中使用Elastic-Job的示例如下:<!--配置作业注册中心 --><reg:zookeeper id="regCenter" server-lists="${gis.dubbo.registry.address}" namespace="example-job" base-sleep-time-milliseconds="${elasti...原创 2018-03-29 23:26:27 · 3149 阅读 · 3 评论 -
源码分析Elastic-Job前置篇二-基于Spring启动序列图与核心类图
本文主要目的:简单梳理了基于Spring ElasticJob的启动流程,从下文开始,将重点剖析ElasticJob的核心实现细节,例如选主、分片、失效转移机制等等。 1、在Spring中使用Elastic-Job的示例如下:<job:simple id="areaSyncJob" class="full class path" registry-center-ref="...原创 2018-04-01 16:53:37 · 1657 阅读 · 0 评论 -
源码分析ElasticJob选主实现原理
ElasticJob各分布式调度服务器有两个角色:主服务器、从服务器。这里主从服务器与数据库的主从同步不一样,也不是传统意义上的主备,从执行调度任务这一视角来看ElasticJob主从服务器的地位是相同的,都是任务调度执行服务器(彼此之间共同组成一个集群平等的执行分配给自己的数据执行调度任务),主从服务器共同构成任务调度的分片节点。ElasticJob的主服务器的职责是根据当前存活的任务调度服务器...原创 2018-04-02 23:23:38 · 4204 阅读 · 2 评论 -
源码分析ElasticJob分片机制(带分片机制流程图)
本文将重点分析ElasticJob的分片机制:ElasticJob分片工作机制: 1、ElasticJob在启动时,首先会启动是否需要重新分片的监听器。 代码见:ListenerManager#startAllListeners {…; shardingListenerManager.start();…}。 2、任务执行之前需要获取分片信息,如果需要重新分片,主服务器执行分片算法,其他从...原创 2018-04-25 13:03:45 · 9965 阅读 · 1 评论 -
源码分析ElasticJob故障失效转移机制
本节将探讨ElasticJob故障失效转移机制。我们知道ElasticJob是一款基于Quartz的分布式任务调度框架,这里的分布式是数据的分布式,ElasticJob的核心设计理念是一个任务在多个节点上执行,每个节点处理一部分数据(任务待处理数据分片)。那如果一个任务节点宕机后,则一次任务调度期间,一部分数据将不会被处理,为了解决由于任务节点宕机引起任务一个调度周期的一次任务执行部分数据未处理,...原创 2018-04-27 12:39:55 · 4223 阅读 · 4 评论 -
源码分析ElasticJob专题文章
源码分析ElasticJob研究系列 主要要两个学习目标: 1)了解分布式调度平台ElasticJob的实现原理。 2)掌握curator开源框架操作ZK。 ElasticJob的两个启动流程图:(如下两个流程图来源于ElasticJob官方文档) 关于ElasticJob的使用请参考ElasticJob官方提供的文档,链接:ElasticJob官方文档 本系列基于上述参考资料...原创 2018-04-28 09:27:41 · 8265 阅读 · 0 评论 -
源码分析ElasticJob任务错过机制(misfire)与幂等性
任务在调度执行中,由于某种原因未执行完毕,下一次调度任务触发后,在同一个Job实例中,会出现两个线程处理同一个分片上的数据,这样就会造成两个线程可能处理到相同的数据。为了避免同一条数据可能会被多次执行的问题,ElasticJob引入幂等机制,确保同一条数据不会再被多个Job同时处理,也避免同一条数据在同一个Job实例的多个线程处理。再重申一次ElastciJob的分布式是数据的分布式,一个任务在多...原创 2018-04-29 07:48:34 · 6634 阅读 · 5 评论 -
源码分析ElasticJob任务运行事件监听器
在任务执行的前后,ElasticJob可以提供扩展,其主要类图如下: ElastciJobListener:elasticJob任务执行事件监听器,提供如下两个方法: 1)void beforeJobExecuted(final ShardingContexts shardingContexts); 在任务执行之前调用,shardingContexts为分片上下文信息。 2)...原创 2018-04-29 17:56:45 · 4573 阅读 · 1 评论