当前位置:网站首页>【Elastic-Job】分布式调度任务概览篇
【Elastic-Job】分布式调度任务概览篇
2022-07-31 05:10:00 【火腿编程】
前言
本司使用任务调度,从spring自带单机任务框架演化到采用分布式调度ElasticJob,主要是本司业务和数据量的逐步增大,单机模型已经严重影响性能。但市场上比较成熟的分布式任务框架还是比较多的,比较知名的就是Elastic-Job和xxl-Job,为什么我司选择了Elastic-Job呢?
参考文档:
内容
在开始之前先了解一些基础概念
什么是调度任务
任务调度是系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。有了任务调度即可解放更多的人力由系统自动去执行任务
什么是分布式调度任务
将一个任务拆分成多个独立的任务项,由分布式的服务器分别执行某一个或几个分片项
任务调度的单机模式
1.timer:是一个定时器类,通过该类可以为指定的定时任务进行配置。timerTask类是一个定时任务类,该类实现了Runnable接口,缺点是异常未肩擦魂会终止线程
2.scheduleExecutorService:相对延迟或者周期作为定时任务调度,缺点是没有决定的日期或时间
3.spring定时框架:配置的功能较多,如果系统使用单机的话可以优先考虑spring定时器
分布式任务调度需求市场上的产品
- Elastic-job:当当网基于quartz二次开发的弹性分布式任务调度系统,功能丰富强大,采用zookeeper实现分布式协调,实现任务高可用以及分片
- Saturn:唯品会开源的一个分布式任务调度平台,可以全域统一配置,统一监控,任务高可用以及分片并发,它是基于elastic-job基础之上改良出来的
- xxl-job:大众点评上的分布式任务调度平台,是一个轻量级分布式任务调度平台,其核心设计目的是开发迅速,学习简单,轻量级,易拓展,现已开发源代码并接入多家公司线上产品线开箱即用
- TBSchedule:淘宝的一款非常优秀的高性能分布式调度框架,目前被应用于阿里、京东、支付宝、国美等很多互联网企业的流程调度系统中
- Elastic-job是一个分布式调度的解决方案,由当当网开源,它由两个相互独立的子项目elastic-job-lite和elastic=cloud组成,使用elastic-job可以快速实现分布式任务调度
Elastic-job的主要功能
1. 分布式调度协调
在分布式环境中,任务能够按指定的调度策略执行,并且能够避免同一个任务多实例重复执
2. 丰富的调度策略
基于成熟的定时任务作业框架quartz corn表达式执行定时任务
3. 弹性扩容缩容
当集群中增加某一个实例,它应当能够被选举并执行任务,当集群中减少一个实例时,它所执行的任务能被转到别的实例来执行
4. 失效转移
某实例在任务执行失败后,会被转移到其他实例执行
5. 错误执行作业重触发
若因某种原因导致作业错过执行时间,自动记录错过执行的作业,并在上次作业完成后自动触发
6. 支持并行调度
支持任务分片,任务分片是指将一个任务氛围多个小任务项在多个实例同时执行
7. 作业分片一致性
当任务被分片后,保证同一分片在分布式环境中仅有一个执行实例
8. 支持作业生命周期操作
可以动态对任务进行开启以及停止操作
9. 丰富的作业类型
支持simple,dataFlow,script三种作业类型
【总结】
无论哪一种调度任务,其内部的机理都是有相通的地方,只要能理清楚一种内部的实现机制,那么使用另外一种调度任务也会得心应手,后续针对这部分内容会继续学习
边栏推荐
- pytorch中的一维、二维、三维卷积操作
- leetcode-每日一题剑指 Offer II 041. 滑动窗口的平均值(队列模拟)
- tf.keras.utils.pad_sequences()
- 基于web3.0使用钱包Metamask的三方登陆
- 局部变量成员变量、引用类型、this,static(第五天)
- Three handshakes and four waves
- 梳理一下自己常用的快捷键
- Swordsman Offer Special Assault Edition --- Day 3
- Element concatenation operations in numpy and pytorch: stack, concatenat, cat
- Redis:简单实用
猜你喜欢
随机推荐
leetcode-829. 连续整数求和(数论)
leetcode-1833. 雪糕的最大数量(排序+贪心)
“档次法”——用于物品体积分布不均匀的01背包问题的求解方法
GUCCI、LV等奢侈品巨头如何布局元宇宙的,其他品牌应该跟上吗?
leetcode-每日一题剑指 Offer II 041. 滑动窗口的平均值(队列模拟)
Redis 事务学习有感
剑指offer基础版 ----- 第25天
目标检测学习笔记
闭包(五)----一个常见的循环
Distributed transaction processing solution big PK!
Object Detection Study Notes
C语言文件读、写、定位函数
If the account number or password is entered incorrectly for many times, the account will be banned.
13 【代理配置 插槽】
闭包(三)----执行环境
uni-app进阶之样式框架/生产环境【day10】
leetcode-每日一题745. 前缀和后缀搜索(哈希和字典树)
The interviewer asked me TCP three handshake and four wave, I really
Swordsman Offer Special Assault Edition --- Day 3
数据库上机实验2 单表查询和嵌套查询







