Elastic-Job
elastic-job(quartz的扩展)使用了quartz的调度机制,内部原理一致,使用注册中心(zookeeper)替换了quartz的jdbc数据存储方式,支持分片等特殊功能
zk部署在有状态容器中会增加运维成本(或者可以先部署在非容器中)
- 分布式调度协调,去中心化(主节点选举机制)
- 无数据库瓶颈,性能高,任务数大且要求低延迟时,一般不需要做二次分发(只要划分更多的分片,分片粒度更细)
- 弹性扩容缩容
- 失效转移
- 错过执行作业重触发
- 作业分片一致性,保证同一分片在分布式环境中仅一个执行实例
- 支持单独配置单个任务的策略配置
- 支持脚本任务
作业类型
- Simple 类型作业:Simple 类型用于一般任务的处理,只需实现SimpleJob接口。该接口仅提供单一方法用于覆盖,此方法将定时执行,与Quartz原生接口相似。
- Dataflow 类型作业:Dataflow 类型用于处理数据流,需实现DataflowJob接口。该接口提供2个方法可供覆盖,分别用于抓取(fetchData)和处理(processData)数据。
- Script类型作业:Script 类型作业意为脚本类型作业,支持 shell,python,perl等所有类型脚本。只需通过控制台或代码配置 scriptCommandLine 即可,无需编码。执行脚本路径可包含参数,参数传递完毕后,作业框架会自动追加最后一个参数为作业运行时信息
创建任务并执行 :
1)需要先设置zk的基本信息,Elastic-Job使用zookeeper来进行分布式管理,如选主、元数据存储与读取、分布式监听机制等。
2)创建一个执行任务的Job类,以Simple 类型作业为例,创建一个继承Simpl

Elastic-Job 是基于 Quartz 的扩展,利用 Zookeeper 进行分布式协调,支持 Simple、Dataflow 和 Script 三种作业类型。它提供弹性扩容缩容、失效转移和分片一致性等功能,避免数据库瓶颈,适用于大规模、低延迟任务需求。在启动流程中,通过选举主节点进行分片分配,确保作业在分布式环境中仅有一个执行实例。

2729

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



