本文主要是介绍分布式任务调度(02)--ElasticJob-Lite,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 简介
轻量级无中心化解决方案,jar包提供分布式任务的协调服务。
// 应用内部定义任务类,实现SimpleJob接口
public class MyElasticJob implements SimpleJob {// 编写自己任务的实际业务流程@Overridepublic void execute(ShardingContext context) {switch (context.getShardingItem()) {case 0:// do something by sharding item 0break;case 1:// do something by sharding item 1break;case 2:break;// case n: ...}}
}
2 案例
应用有5个任务需执行。Job E需分成四个子任务,应用部署在两台机器。
应用A启动后, 5个任务通过 zk 协调后被分配到两台机器上,通过Quartz Scheduler分开执行不同的任务。
3 本质
底层任务调度还是通过Quartz ,相比Redis分布式锁、Quartz 分布式部署 ,优势在可依赖zk,将任务通过LB分配给应用内的Quartz Scheduler容器。
4 优点
使用者角度:简单易用。
5 缺点
但架构,调度器和执行器依然在同一应用方JVM,且容器在启动后,依然需负载均衡。应用假如频繁重启,不断选主,对分片做负载均衡,这些都是较重操作。
6 控制台
通过读取注册中心数据展现作业状态,更新注册中心数据修改全局任务配置。从一个任务调度平台的角度来看,控制台功能偏弱。
这篇关于分布式任务调度(02)--ElasticJob-Lite的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!