使用IDEA搭建XXL-JOB分布式任务调度平台

Posted 小哈里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用IDEA搭建XXL-JOB分布式任务调度平台相关的知识,希望对你有一定的参考价值。

1、什么是分布式调度平台

什么是任务调度?

  • 考虑以下应用场景:
    某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。
    某银行系统需要在信用卡到期还款日的前三天进行短信提醒。
    某财务系统需要在每天凌晨0:10结算前一天的财务数据,统计汇总。
    12306会根据车次的不同,而设置某几个时间点进行分批放票。
    某网站为了实现天气实时展示,每隔5分钟就去天气服务器获取最新的实时天气信息。
  • 任务调度就是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。通俗一点说,任务调度就是传统的定时自动执行的任务

任务调度如何实现?

  • 传统的多线程解决方案:我们可以开启一个线程,每sleep一段时间,就去检查是否已到预期执行时间。Jdk也为我们提供了相关支持,如Timer、ScheduledExecutor。
  • 如果有了很多的任务:我们就同时启动很多个Timer 并行执行 多个任务。
    Java 5 推出了基于线程池设计的 ScheduledExecutor,其设计思想是,每一个被调度的任务都会由线程池中一个线程去执行,因此任务是并发执行的,相互之间不会受到干扰。
  • Timer 和 ScheduledExecutor 都仅能提供基于开始时间与重复间隔的任务调度,不能胜任更加复杂的调度需求。比如,设置每月第一天凌晨1点执行任务、复杂调度任务的管理、任务间传递数据等等。Quartz 是一个功能强大的任务调度框架,它可以满足更多更复杂的调度需求,Quartz 设计的核心类包括 Scheduler, Job 以及 Trigger。

为什么需要分布式任务调度?

  • 分布式系统具有每个部分都可以独立部署,服务之间交互通过网络进行通信,每个部分都可以集群方式部署,并可针对部分结点进行硬件及软件扩容的特点。
  • 采用分布式架构,一个服务往往会部署多个冗余实例来运行我们的业务,比如发放优惠券这同一份代码会被部署在不同的多个服务器上。
  • 分布式可以提高并行的效率。并行任务调度实现靠多线程,如果有大量任务需要调度,此时光靠多线程就会有瓶颈了,因为一台计算机CPU的处理能力是有限的。
    如果将任务调度程序分布式部署,每个结点还可以部署为集群,这样就可以让多台计算机共同去完成任务调度,我们可以将任务分割为若干个分片,由不同的实例并行执行,来提高任务调度的处理效率。
  • 分布式还可以支持高容错。如果某一台机器坏了,不影响其他实例来执行任务。

为什么选择XXL-JOB?

  • XXL-JOB是一个开源且优秀的任务调度平台,学习简单、轻量级、易扩展。
  • XXL-JOB相比于其他任务调度框架来说,具有更好的用户体验、有良好的运维支持、任务依赖。

2、搭建XXL-JOB平台

1】官网下载XXL-JOB代码

  • Github链接:https://github.com/xuxueli/xxl-job/
  • 社区链接:https://www.xuxueli.com/xxl-job/

2】安装 Mysql,初始化 XXL-JOB 底层库表

  • 首先你需要一个mysql环境,推荐phpstudy_小皮和Navicat环境

  • 然后,我们开始初始化数据库,在xxl-job/doc/db路径下找到tables_xxl_job.sql文件。在mysql上运行sql文件。运行后你会得到一个xxl的数据库

  • 最后,你需要配置XXL的数据库密码,并确保jdbc的数据库配置,包括端口,接口等都一致。
    在xxl-job-admin\\src\\main\\resources项目下找到application.properties

3】打开IDEA编译部署“调度中心”即可。

  • IDEA打开项目到指定的位置文件夹,使用maven直接构建
  • xxljob的admin是调度平台,samples是一个具体的例子,记得要让他们两个都运行起来才能看到项目 .
  • 最后就是登录界面了。
    打开浏览器,输入http://localhost:8080/xxl-job-admin进入管理页面。默认账号/密码:admin/123456

参考资料:
https://cloud.tencent.com/developer/article/1828830
https://blog.csdn.net/yunqiinsight/article/details/109175769
https://blog.51cto.com/u_14558366/3108977

以上是关于使用IDEA搭建XXL-JOB分布式任务调度平台的主要内容,如果未能解决你的问题,请参考以下文章

分布式任务调度平台XXL-JOB搭建

分布式任务调度平台XXL-JOB快速搭建教程

XXL-Job分布式任务调度框架-- 介绍和服务搭建1

分布式任务调度平台XXL-Job集群版搭建

三分钟搞定 XXL-JOB 分布式任务调度平台

任务调度平台XXL-JOB使用