![]() |
概述
Elastic-Job 是一个开源的分布式调度中间件,由两个相互独立的子项目 Elastic-Job-Lite 和 Elastic- Job-Cloud 组成。
Elastic-Job-Lite 为轻量级无中心化解决方案,使用 jar 包提供分布式任务的调度和治理。
Elastic-Job-Lite 定位为纯粹的作业中间件,仅关注分布式调度、协调以及分片等核心功能,将作业部署、资源分配等功能交于 Mesos 或 Kubernetes 处理;
项目架构
ElasticJob-Lite 定位为轻量级无中心化解决方案,使用 jar 的形式提供分布式任务的协调服务。
如何开发(SpringBoot项目为例)
POM配置
<dependency> 2.
|
|
|
|
|
|
- </dependency>
properties配置
|
3. elasticjob.reg-center.server-lists=192.168.0.6:2181, 192.168.0.7:2182,192.168.0.8:2183
|
|
7. elasticjob.reg-center.max-retries=6 8.
|
|
13.
|
15. elasticjob.jobs.KolDayDataProcess.elastic-job-class=com.damei.hsydata.bz.datasync.job.Ko lDayDataProcess
|
|
|
21. elasticjob.dump.port=9111 22.
|
|
- elasticjob.jobs.myScriptJob.props.script.command.line= echo sharding execution context is $*
简单作业
-
- package com.damei.hsydata.bz.datasync.job; 2.
|
|
|
|
|
|
|
17.
|
|
21.
|
|
|
|
|
|
|
|
|
|
|
|
|
47. }
流式作业
-
- package com.damei.hsydata.bz.datasync.job; 2.
|
|
|
9. import org.slf4j.Logger;
|
|
13.
|
15.
|
17.
|
|
21.
|
|
|
27.
28.
|
31. try {
|
32. |
return cache.mRpoplpush(RedisKeys.KolInfoIdCacheSourceKey,RedisKeys.KolInfoIdCacheDestinationKey | |
|
, |
RedisKeys.SRandomNumber); | |
|
33. | ||
|
34. |
} catch (Exception ex) { | |
|
35. |
ex.printStackTrace(); | |
|
36. |
logger.error("执行设置KOL日数据缓存任务失败:", ex); | |
|
37. |
} | |
|
38. |
return null; | |
|
39. |
} | |
|
40. | ||
|
41. |
@Override | |
|
42. |
public void processData(ShardingContext shardingContext, List list) { | |
|
43. |
for (Object id : list) { | |
|
44. |
threadPoolExecutor.execute(new Runnable() { | |
|
45. |
@Override | |
|
46. |
public void run() { | |
|
47. |
try { | |
|
48. |
final Long kolId = Long.parseLong(id.toString()); | |
|
|
|
|
57.
|
|
61.
|
脚本作业
HTTP作业
重要的概念
分片原理
新的Job实例加入集群
现有的Job实例下线(如果下线的是leader节点,那么先选举然后触发分片算法的执行) 主节点选举
上述三种情况,会让zookeeper上leader节点的sharding节点上多出来一个necessary的临时节点, 主节点每次执行Job前,都会去看一下这个节点,如果有则执行
本文介绍Elastic-Job-Lite的分布式任务调度与SpringBoot集成,包括POM配置、job配置和关键技术原理,适合Spring开发者理解和使用分布式作业中间件。

&spm=1001.2101.3001.5002&articleId=121946563&d=1&t=3&u=85232e618a5e4d69875f3f9f6d59bfd5)
2316

被折叠的 条评论
为什么被折叠?



