栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

xxl-job分布式任务调度平台

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

xxl-job分布式任务调度平台

xxl-job是在定时任务框架quartz(支持分布式任务调度,通过数据库竞争锁来实现)的基础上实现的,但是修改了任务调度的模式,并且任务调度采用注册和RPC调用方式来实现。

技术栈

mysql、ssm、内置netty作为RPC服务调用、quartz

先来聊聊什么是任务调度:

传统实现定时任务的方式:Thread线程、Timetask一个轻量级定时任务队列框架,用于设置定时任务、ScheduleExecutorService定时周期执行任务、Quartz定时任务框架。

这些方式都在单点系统使用,一旦job服务器宕机之后,就必须采取一些措施:

  • 使用心跳检测监控自动重启、任务补偿机制(任务做标记)
  • 定时任务在执行代码的时候中间突然报错,使用日志记录错误,跳过继续执行,在使用定时Job 扫描日志错误记录,进行补偿信息。
  • 定时Job 在执行的时候,导致整个 Job 异常结束掉,发送邮件通知给运维人员。

分布式定时任务的方式?XXL-Job、Elastic-job等。不过,既然采用分布式,那么肯定会遇到项目部署集群,导致任务重复执行多次;具体操作如下:

1:Zookeeper 实现分布式锁,每次保证拿到锁再执行,效率比较低。
2:配置文件中加入定时任务的开关,但是只能保证一台服务器执行,变为单机服务器。
3:启动的时候使用数据库唯一标识;同样是效率低。
4:分布式调度任务平台,解决了任务幂等问题,Job 负载均衡轮询机制(推荐)。

传统任务调度:

幂等性原因:

集群情况下,两个Tomcat,任务重复执行

传统任务调度的缺点:

  • 没有补偿机制
  • 不支持集群
  • 不支持路由策略
  • 大量数据统计
  • job管理平台
  • 报警邮件通知、状态监控

分布式job调度平台原理:

任何job现在任务调度平台执行,在由任务调度平台路由到实际job服务器。

底层采用quartz

传统的定时任务,几乎无法做到高可用,

再加上项目部署集群,会导致任务幂等性问题;此时分布式定时任务调度平台便发挥了作用,本篇文章咱们拿 XXL-Job 来进行说明;相关作用如下:

1:支持Job集群,Job 负载均衡轮询机制保证幂等性问题
2:支持Job补偿,如果Job执行失败的话,会自动实现重试机制,超过重启次数后,会发送邮件通知运维人员。
3:支持Job日志记录。
4:动态配置定时规则,传统定时Job触发规则都是写死在代码中。
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332563.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号