ElasticJob 分布式作业调度解决方案

ElasticJob 分布式作业调度解决方案

2022-09-02 0 897
资源编号 36642 最近更新 2022-09-02
¥ 0人民币 升级VIP
立即下载 注意事项
下载不了?请联系网站客服提交链接错误!
增值服务: 安装指导 环境配置 二次开发 模板修改 源码安装

本期推荐的是 ElasticJob 一个面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成。

ElasticJob 分布式作业调度解决方案

ElasticJob可以通过弹性调度、资源管控、以及作业治理的功能,打造一个适用于互联网场景的分布式调度解决方案,并通过开放的架构设计,提供多元化的作业生态。 它的各个产品使用统一的作业 API,开发者仅需一次开发,即可随意部署。

ElasticJob 已于 2020 年 5 月 28 日成为 Apache ShardingSphere 的子项目。

官方网站:
https://shardingsphere.apache.org/elasticjob/

项目介绍

使用 ElasticJob 能够让开发工程师不再担心任务的线性吞吐量提升等非功能需求,使他们能够更加专注于面向业务编码设计; 同时,它也能够解放运维工程师,使他们不必再担心任务的可用性和相关管理需求,只通过轻松的增加服务节点即可达到自动化运维的目的。

ElasticJob-Lite

定位为轻量级无中心化解决方案,使用 jar 的形式提供分布式任务的协调服务。

ElasticJob 分布式作业调度解决方案

架构图

ElasticJob-Cloud

采用自研 Mesos Framework 的解决方案,额外提供资源治理、应用分发以及进程隔离等功能。

ElasticJob 分布式作业调度解决方案

架构图

功能列表

弹性调度

  • 支持任务在分布式场景下的分片和高可用能够水平扩展任务的吞吐量和执行效率任务处理能力随资源配备弹性伸缩

资源分配

  • 在适合的时间将适合的资源分配给任务并使其生效
  • 相同任务聚合至相同的执行器统一处理
  • 动态调配追加资源至新分配的任务

作业治理

  • 失效转移
  • 错过作业重新执行
  • 自诊断修复

作业依赖(TODO)

  • 基于有向无环图(DAG)的作业间依赖
  • 基于有向无环图(DAG)的作业分片间依赖

作业开放生态

  • 可扩展的作业类型统一接口
  • 丰富的作业类型库,如数据流、脚本、HTTP、文件、大数据等
  • 易于对接业务作业,能够与 Spring 依赖注入无缝整合

可视化管控端

  • 作业管控端
  • 作业执行历史数据追踪
  • 注册中心管理

环境要求

Java

请使用 Java 8 及其以上版本。

Maven

请使用 Maven 3.5.0 及其以上版本。

ZooKeeper

请使用 ZooKeeper 3.6.0 及其以上版本。

Mesos(仅 ElasticJob-Cloud 使用)

请使用 Mesos 1.1.0 及其兼容版本。

快速开始

ElasticJob-Lite

引入 Maven 依赖

<dependency>    <groupId>org.apache.shardingsphere.elasticjob</groupId>    <artifactId>elasticjob-lite-core</artifactId>    <version>${latest.release.version}</version></dependency>

作业开发

public class MyJob 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:                 // do something by sharding item 2                break;            // case n: ...        }    }}

作业配置

    JobConfiguration jobConfig = JobConfiguration.newBuilder("MyJob", 3).cron("0/5 * * * * ?").build();

作业调度

public class MyJobDemo {        public static void main(String[] args) {        new ScheduleJobBootstrap(createRegistryCenter(), new MyJob(), createJobConfiguration()).schedule();    }        private static CoordinatorRegistryCenter createRegistryCenter() {        CoordinatorRegistryCenter regCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration("zk_host:2181", "my-job"));        regCenter.init();        return regCenter;    }        private static JobConfiguration createJobConfiguration() {        // 创建作业配置        // ...    }}

ElasticJob-Cloud

引入 Maven 依赖

<dependency>    <groupId>org.apache.shardingsphere.elasticjob</groupId>    <artifactId>elasticjob-cloud-executor</artifactId>    <version>${latest.release.version}</version></dependency>

作业开发

public class MyJob 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:                 // do something by sharding item 2                break;            // case n: ...        }    }}

作业启动

public class MyJobDemo {        public static void main(final String[] args) {        JobBootstrap.execute(new MyJob());    }}

作业打包

tar -cvf my-job.tar.gz my-job
资源下载此资源为免费资源立即下载

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 免费源码 ElasticJob 分布式作业调度解决方案 https://www.7claw.com/36642.html

分享免费的开源源码

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、七爪会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、七爪无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在七爪上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于七爪介入快速处理。
查看详情
  • 1、七爪作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益; 2、非平台线上交易的项目,出现任何后果均与互站无关;无论卖家以何理由要求线下交易的,请联系管理举报。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务