分布式任务调度(02)--ElasticJob-Lite
  w5drKdEZCZdz 2023年11月08日 26 0

轻量级无中心化解决方案,jar包提供分布式任务的协调服务。

// 应用内部定义任务类,实现SimpleJob接口
public class MyElasticJob implements SimpleJob {
  
  	// 编写自己任务的实际业务流程
    @Override
    public void execute(ShardingContext context) {
        switch (context.getShardingItem()) {
            case 0:
                // do something by sharding item 0
                break;
            case 1:
                // do something by sharding item 1
                break;
            case 2:
                break;
            // case n: ...
        }
    }
}

示例

应用有5个任务需执行。Job E需分成四个子任务,应用部署在两台机器。

应用A启动后, 5个任务通过 zk 协调后被分配到两台机器上,通过Quartz Scheduler分开执行不同的任务。

本质

底层任务调度还是通过Quartz ,相比Redis分布式锁、Quartz 分布式部署 ,优势在可依赖zk,将任务通过LB分配给应用内的Quartz Scheduler容器。

优点

使用者角度:简单易用。

缺点

但架构,调度器和执行器依然在同一应用方JVM,且容器在启动后,依然需负载均衡。应用假如频繁重启,不断选主,对分片做负载均衡,这些都是较重操作。

控制台

通过读取注册中心数据展现作业状态,更新注册中心数据修改全局任务配置。从一个任务调度平台的角度来看,控制台功能偏弱。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
w5drKdEZCZdz