【xxl-job】分布式任务调度系统xxl-job搭建

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用。

更多介绍,请访问官网:分布式任务调度平台XXL-JOB

在这里插入图片描述

一、任务调度中心(基于docker)【Version 2.4.0】

前提条件:任务调度中心(xxl-job admin)依赖于 mysql,所以必须要安装mysql才行!安装mysql有2种方式:docker部署或者在线安装或者编译安装部署。具体操作请自行解决。

主要实现方式与官方推荐略有不同,这里将application.properties 配置文件映射到容器内部, 然后利用spring.config.location覆盖默认的启动配置文件

1. 数据库脚本下载并在数据库中执行

wget https://github.com/xuxueli/xxl-job/raw/2.4.0/doc/db/tables_xxl_job.sql

如何执行不在此处赘述。

2. 拉取镜像

docker hub官方镜像地址: xxl-job-admin

docker pull xuxueli/xxl-job-admin

执行会报错:

Using default tag: latest Error response from daemon: manifest for xuxueli/xxl-job-admin:latest not found

为什么呢?因为官方没有打 latest 的tag标签,所以会提示下载失败!那怎么下载呢?必须制定版本才可以!截至本文发布时最新版本是2.4.0

那么下载命令为:

docker pull xuxueli/xxl-job-admin:2.4.0

也可在后续docker启动时自动拉取镜像。

3. 下载application.properties

wget https://github.com/xuxueli/xxl-job/raw/2.4.0/xxl-job-admin/src/main/resources/application.properties

4. 修改application.properties

主要修改服务启动的端口(使用默认8080的话可不修改),mysql的连接信息,SMTP的连接信息(可不修改如果不需要SMTP发送邮件的话)
在这里插入图片描述

5. 启动容器

docker run -d --name xxl-job-admin \

-v [修改后的配置文件位置]:/application.properties \

-p 8008:8080 --network=1panel-network \

-e PARAMS='--spring.config.location=/application.properties' \

--restart always \

xuxueli/xxl-job-admin:2.4.0

下面是对每个参数的解释:

  • -d:在后台运行容器(以守护态模式运行)。
  • --name xxl-job-admin:指定容器的名称为"xxl-job-admin"。
  • -v [修改后的配置文件位置]:/application.properties:将修改后的配置文件挂载到容器中的/application.properties路径,可以通过这个文件来配置xxl-job-admin应用。
  • -p 8008:8080:端口映射,将主机的8008端口映射到容器的8080端口,这样你就可以通过主机的8008端口访问xxl-job-admin应用。
  • --network=1panel-network:将容器连接到名为"1panel-network"的网络,这样可以与其他容器进行通信。
  • -e PARAMS='--spring.config.location=/application.properties':设置环境变量PARAMS,其中--spring.config.location=/application.properties是指使用指定的配置文件启动xxl-job admin。
  • --restart always,当容器意外退出或宿主机重启时,Docker将自动重新启动xxl-job-admin容器
  • xuxueli/xxl-job-admin:2.4.0:指定要运行的Docker镜像,版本号为2.4.0,这是xxl-job-admin应用的官方镜像。

访问http://ip:8008/xxl-job-admin (如果修改过配置则访问 http://ip:[server.port]/[server.context-path])即可,默认用户名为admin,密码为123456

在这里插入图片描述

二、执行器【Version 2.4.0】

1. 下载Source并编译成jar包

2. 安装openjdk环境 [Ubuntu 2202]

运行下面代码即可

sudo apt install openjdk-11-jdk -y

完成后,可以通过检查 Java 版本来验证:

java -version

输出这种类型表示成功了

openjdk 19.0.2 2023-01-17
OpenJDK Runtime Environment (build 19.0.2+7-Ubuntu-0ubuntu322.04)
OpenJDK 64-Bit Server VM (build 19.0.2+7-Ubuntu-0ubuntu322.04, mixed mode, sharing)

3. 下载并根据实际情况修改

wget https://github.com/xuxueli/xxl-job/raw/2.4.0/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties

主要修改xxl-job admin的地址,以及执行器的名字

在这里插入图片描述

4. 运行

nohup java -jar ./xxl-job-executor-sample-springboot.jar --spring.config.location=./application.properties &

下面是对以上命令行的解释:

  • nohup:nohup命令可以让程序在后台运行,即使当前终端会话关闭,程序也会继续运行。
  • java -jar ./xxl-job-executor-sample-springboot.jar:这是运行Java应用程序的命令。使用java -jar来指定要运行的JAR文件,这里是xxl-job-executor-sample-springboot.jar
  • --spring.config.location=./application.properties:通过这个参数指定应用程序使用的配置文件路径为./application.properties。可以根据实际情况修改配置文件路径。
  • &:这个符号表示将程序放到后台运行,允许继续在终端中执行其他命令。

5. 验证

执行器中管理中对应节点已经自动注册,接下来就可以安排定时排程去运行shell脚本等了。

在这里插入图片描述

完成xxl-job分布式任务调度系统初步部署,后续可以根据情况添加更多的执行器和节点,也可以根据实际情况添加xxl-job admin任务调度中心的HA部署等。文章中还有很多自己还没搞明白的,需要继续钻研。如有瑕疵非常抱歉。

猜你喜欢

转载自blog.csdn.net/u012153104/article/details/131704125