Elastic-Job介绍
一.Elastic-job的介绍
Elastic-job:当当网基于quartz 二次开发的弹性分布式任务调度系统,功能丰富强大,采用zookeeper实现分
布式协调,实现任务高可用以及分片。Elastic-Job是一个分布式调度的解决方案,由当当网开源,它由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成,使用Elastic-Job可以快速实现分布式任务调度。
功能列表:
功能列表:
分布式调度协调
在分布式环境中,任务能够按指定的调度策略执行,并且能够避免同一任务多实例重复执行。
弹性扩容缩容
当集群中增加某一个实例,它应当也能够被选举并执行任务;当集群减少一个实例时,它所执行的任务能被转移到别的实例来执行。
丰富的作业类型
支持Simple、DataFlow、Script三种作业类型,后续会有详细介绍。
丰富的调度策略:
基于成熟的定时任务作业框架Quartz cron表达式执行定时任务。
失效转移
某实例在任务执行失败后,会被转移到其他实例执行。
错过执行作业重触发
若因某种原因导致作业错过执行,自动记录错过执行的作业,并在上次作业完成后自动触发。
支持并行调度
支持任务分片,任务分片是指将一个任务分为多个小任务项在多个实例同时执行。
作业分片一致性
当任务被分片后,保证同一分片在分布式环境中仅一个执行实例。
支持作业生命周期操作
可以动态对任务进行开启及停止操作。
Spring 整合以及命名空间支持
对Spring支持良好的整合方式,支持spring自定义命名空间,支持占位符。
运维平台
提供运维界面,可以管理作业和注册中心。
二.其他分布式调度框架
2)Saturn: 唯品会开源的一个分布式任务调度平台,可以全域统一配置,统一监控,任务高可用以及分片并发处
理。它是在elastic-job基础之上改良出来的。
3)xxl-job:大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学
习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
4)TBSchedule:淘宝的一款非常优秀的高性能分布式调度框架,目前被应用于阿里、京东、支付宝、国美等很多
互联网企业的流程调度系统中。
三.elastic-job的架构
App:应用程序,内部包含任务执行业务逻辑和Elastic-Job-Lite组件,其中执行任务需要实现ElasticJob接口完成
与Elastic-Job-Lite组件的集成,并进行任务的相关配置。应用程序可启动多个实例,也就出现了多个任务执行实
例。
Elastic-Job-Lite:Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服
务,此组件负责任务的调度,并产生日志及任务调度记录。
无中心化,是指没有调度中心这一概念,每个运行在集群中的作业服务器都是对等的,各个作业节点是自治的、平
等的、节点之间通过注册中心进行分布式协调。
Registry:以Zookeeper作为Elastic-Job的注册中心组件,存储了执行任务的相关信息。同时,Elastic-Job利用该
组件进行执行任务实例的选举。
Console:Elastic-Job提供了运维平台,它通过读取Zookeeper数据展现任务执行状态,或更新Zookeeper数据修
改全局配置。通过Elastic-Job-Lite组件产生的数据来查看任务执行历史记录。
流程:应用程序在启动时,在其内嵌的Elastic-Job-Lite组件会向Zookeeper注册该实例的信息,并触发选举(此时可能已
经启动了该应用程序的其他实例),从众多实例中选举出一个Leader,让其执行任务。当到达任务执行时间时,
Elastic-Job-Lite组件会调用由应用程序实现的任务业务逻辑,任务执行后会产生任务执行记录。当应用程序的某一
个实例宕机时,Zookeeper组件会感知到并重新触发leader选举。
四.zk在elastic-job的作用
1.Elastic-Job依赖ZooKeeper完成对执行任务信息的存储(如任务名称、任务参与实例、任务执行策略等);
2.Elastic-Job依赖ZooKeeper实现选举机制,在任务执行实例数量变化时(如在快速上手中的启动新实例或停止实例),会触发选举机制来决定让哪个实例去执行该任务。
Elastic-Job介绍相关推荐
- Elastic Search 介绍和基本概念
Elastic Search 特点 Elastic Search 可能是是当下最火的搜索引擎中间件了.为什么这么火呢?主要是因为他有几大绝艺: 快速.无论什么时候,你需要向 ES 查询你的数据,都能够 ...
- Beats:Elastic Beats 介绍 及和 Logstash 的比较
Elastic Stack 传统上由三个主要组件(Elasticsearch,Logstash 和 Kibana)组成,早已脱离了这种组合,现在也可以与名为 "Beats" 的第四 ...
- 使用Elastic APM监控你的.NET Core应用
前言 在应用实际的运维过程中,我们需要更多的日志和监控来让我们对自己的应用程序的运行状况有一个全方位的了解.然而对于大部分开发者而言,平时大家所关注的更多的是如何更优雅的实现业务,或者是如何让应用的响 ...
- Elastic 社区资深布道师,分享也是一种快乐
点击查看活动详情:CSDN 大家好,我叫刘晓国,来自 Elastic 社区,现为 Elastic 社区资深布道师.我毕业于西北工业大学硕士,新加坡国立大学硕士.曾经就职于新加坡科技,康柏电脑(Comp ...
- Elastic search入门到集群实战操作详解(原生API操作、springboot整合操作)-step1
Elastic search入门到集群实战操作详解(原生API操作.springboot整合操作)-step2 https://blog.csdn.net/qq_45441466/article/de ...
- Elasticsearch学习记录
Elastic Stack介绍 https://blog.csdn.net/xb_workspace/article/details/85165070 什么是Elasticsearch 分布式高性能高 ...
- 近几个月Github上最热门的Java项目一览
今天逛了逛Github,顺手精选出了一下近几个月以来Github上最热门的12个Java项目.如果遇到自己感兴趣的开源项目,不妨去学习一下哦! 1. java-design-patterns(Star ...
- LuceneElasticSeach
目录 前言 1 什么是全文检索 1.1 数据分类 1.2 结构化数据搜索 1.3 非结构化数据查询方法 1.4 如何实现全文检索 1.5 全文检索的应用场景 2 Lucene 实现全文检索的流程说明 ...
- Elasticsearch7.17 一: 快速入门
文章目录 Elasticsearch7.17: 快速入门 ElasticSearch简介 ElasticSearch相关概念 基本概念 ElasticSearch概念 ElasticSearch安装运 ...
- Lucene 和 Kibana、ElasticSeach、Spring Data ElasticSearch
什么是全文检索 数据分类 生活中的数据总体分为两种:结构化数据和非结构化数据. 结构化数据 - 行数据,可以用二维表结构来逻辑表达实现的数据:指具有固定格式或有限长度的数据,如数据库,元数据等. 非结 ...
最新文章
- HashSet的使用
- php 获取key的位置,PHP使用腾讯地图获取指定地址坐标:创建key(图文+视频)
- 一个资深投行女销售和低调IT创业男的故事
- 各排序算法的C++实现与性能测试(转)
- 用java的io做一个代码计数器,如何制作Java页面计数器_java
- k8s pod应用升级回滚(set image/rollout)和弹性伸缩(scale)示例
- 对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的边。说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度
- 倒序存放数组java_java实现数组中的逆序对
- 用朴素的英语解释9种关键机器学习算法
- 源码分析:Java对象的内存分配
- 【报告分享】2020年重点行业薪酬趋势指南.pdf(附下载链接)
- Win11如何禁用USB端口?禁用USB端口的方法
- 浙江大华 研发类试题
- 官网下载storage manager方法
- 稳压二极管的原理和伏安特性
- 饥荒如何解锁机器人_《饥荒》全部人物怎样解锁 全人物解锁条件及方法一览...
- JAVA:实现ClosestPair最近对算法(附完整源码)
- 第17节 三层交换机技术—工作原理及相关命令
- 番茄插件安装及使用介绍
- AFM技术原理及相关测试模式