Elastic-Job介绍

简介: Elastic-Job介绍

Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。

Elastic-Job-LiteElastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务.依赖Zookeeper.

  • 功能列表
  • 分布式调度协调
  • 弹性扩容缩容
  • 失效转移
  • 错过执行作业重触发
  • 作业分片一致性,保证同一分片在分布式环境中仅一个执行实例
  • 自诊断并修复分布式不稳定造成的问题
  • 支持并行调度
  • 支持作业生命周期操作
  • 丰富的作业类型
  • Spring整合以及命名空间提供
  • 运维平台
  • 概念
  • 分片任务的分布式执行,需要将一个任务拆分为多个独立的任务项,然后由分布式的服务器分别执行某一个或几个分片项。这里的任务分片是逻辑上的概念,elastic-job不直接提供数据处理的功能,只会将逻辑上的分片分配给各个作业服务器,具体的数据分片逻辑需要用户自己实现。例如两台服务器,分为两个分片,需要处理一张数据库表中的数据,则两个分片会分别被分配到两台服务器,每台服务器处理其中一个分片的数据,程序需要自己实现数据的分片,例如根据数据库表的主键对分片取模,第一个分片处理值为0的数据,第二个分片处理值为1的数据。再次强调如何分片是用户自己的行为,例如
  • 用户直接在读取数据表的数据时就根据取模的结果只返回值为0或者值为1的数据
  • 把所有的数据全部查询回来以后再通过java程序取模过滤。
  • 分布式调度
    Elastic-Job-Lite并无作业调度中心节点,而是基于部署作业框架的程序在到达相应时间点时各自触发调度。注册中心仅用于作业注册和监控信息存储。而主作业节点仅用于处理分片和清理等功能。
  • 作业高可用
    Elastic-Job-Lite提供最安全的方式执行作业。将分片总数设置为1,并使用多于1台的服务器执行作业,作业将会以1主n从的方式执行。
    一旦执行作业的服务器崩溃,等待执行的服务器将会在下次作业启动时替补执行。开启失效转移功能效果更好,可以保证在本次作业执行时崩溃,备机立即启动替补执行。
  • 最大限度利用资源
    Elastic-Job-Lite也提供最灵活的方式,最大限度的提高执行作业的吞吐量。将分片项设置为大于服务器的数量,最好是大于服务器倍数的数量,作业将会合理的利用分布式资源,动态的分配分片项。
    例如:3台服务器,分成10片,则分片项分配结果为服务器A=0,1,2;服务器B=3,4,5;服务器C=6,7,8,9。 如果服务器C崩溃,则分片项分配结果为服务器A=0,1,2,3,4;服务器B=5,6,7,8,9。在不丢失分片项的情况下,最大限度的利用现有资源提高吞吐量。Elastic-Job-Lite还提供了个性化的参数配置shardingItemParameter,可以配置和分片项的对应关系,将数字转换为可用的业务代码,如0=北京,1=上海,2=广州,代码中可以直接使用"北京","广州",更加具备可读性。
  • 架构
  • 快速入门

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

  • 功能列表
  • 应用自动分发
  • 基于Fenzo的弹性资源分配
  • 分布式调度协调
  • 弹性扩容缩容
  • 失效转移
  • 错过执行作业重触发
  • 作业分片一致性,保证同一分片在分布式环境中仅执行一个执行实例
  • 支持并行调度
  • 支持作业生命周期操作
  • 丰富的作业类型
  • Spring整合
  • 运维平台
  • 基于Docker的进程隔离(TBD)


相关文章
|
5月前
|
Java 调度 Maven
Elastic-job分布式调度系统
Elastic-job分布式调度系统
|
2月前
|
Kubernetes 数据库 容器
k8s快速部署xxl-job
k8s快速部署xxl-job
|
5月前
|
Shell Docker 容器
docker部署xxl_job
docker部署xxl_job
30 1
|
12月前
|
存储 SQL BI
xxl-job 介绍与使用
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
159 0
|
SQL 调度 数据库
|
JavaScript Java 关系型数据库
xxl-job搭建
xxl-job搭建
283 0
|
存储 算法 安全
定时任务之elastic-job概述
定时任务之elastic-job概述
384 0
|
SQL Java 关系型数据库
elastic-job 定时任务集成
elastic-job 定时任务集成
442 0
elastic-job 定时任务集成
|
运维 算法 Java
Elastic-Job源码解读
文章以任务初始化、任务触发、分片策略、分布式为切入点讲述Elastic Job的源码,一方面自己总结记录、另一方面希望可以帮助到其他的开发者快读理解Elastic Job工作原理。
1230 0
|
Java 调度 Spring
elastic-job之简单job
简介 elastic-job是当当网开源的基于zookeeper和quartz实现的分布式作业调度框架。github地址是https://github.com/dangdangdotcom/elastic-job,官方网站是http://elasticjob.io/。
2472 0