安装环境与依赖

单机部署在CentOS7上

虚拟机IP:192.168.4.53

MySQLIP:192.168.4.30

参考官方文档:​​https://www.xuxueli.com/xxl-job/​

部署过程主要是参考官方文档,这里仅对其中步骤进行细化。配置文件的内容说明见官方文档。

环境:

Maven3+

jdk1.8+:下载地址华为云:​https://repo.huaweicloud.com/java/jdk/​​​​

MySQL5.7+

安装依赖软件

yum -y install  java-1.8.0-openjdk java-1.8.0-openjdk-headless
java -version
cd /usr/local/src/
wget https://archive.apache.org/dist/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
tar -xf apache-maven-3.6.2-bin.tar.gz
echo "PATH=/usr/local/src/apache-maven-3.6.2/bin/:$PATH" >> /etc/profile
source /etc/profile
mvn -v

一、下载源码并解压

​https://github.com/xuxueli/xxl-job ​

​http://gitee.com/xuxueli0323/xxl-job​

这里安装过程中的源码为gitee下载zip包

unzip xxl-job-master.zip
mv xxl-job-master /usr/local/src/
cd /usr/local/src/xxl-job-master

源码包解压到/usr/local/src目录,进入到xxl-job-master目录,后续编译操作都在此目录进行。

二、初始化“调度数据库”

请下载项目源码并解压,获取 “调度数据库初始化SQL脚本” 并执行即可。

“调度数据库初始化SQL脚本” 位置为:

xxl-job-master/doc/db/tables_xxl_job.sql

​参考官方文档章节2.1​

mysql -uroot -p123456 -h 192.168.4.30
source /usr/local/src/xxl-job-master/doc/db/tables_xxl_job.sql

三、配置部署“调度中心”

配置文件修改如下

vim xxl-job-admin/src/main/resources/application.properties
#配置文件修改如下
### web
server.port=9090 #为避免端口占用,修改为9090
### xxl-job, datasource #MySQL数据库的IP、端口、用户名口令
spring.datasource.url=jdbc:mysql://192.168.4.30:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456

四、配置部署“执行器项目”

配置文件修改项如下

vim xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
# 配置文件修改项如下
# web port
server.port=9091 #修改默认端口为9091
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses=http://192.168.4.53:9090/xxl-job-admin #修改,调度中心的地址,也就是后面浏览器登陆的地址,端口要与前面第三步骤的server.port一致
### xxl-job executor server-info
xxl.job.executor.ip=192.168.4.53 #修改,执行器的IP
xxl.job.executor.port=9999 #默认,不修改

五、mvn编译

mvn clean package

编译成功显示如下图

分布式任务调度平台XXL-JOB[安装过程记录]_jar

编译完成后,jar包所在目录target/目录下。

[root@host53 xxl-job-master]# ll xxl-job-admin/target/
total 40096
drwxr-xr-x 7 root root 131 Jan 5 19:46 classes
drwxr-xr-x 3 root root 25 Jan 5 19:46 generated-sources
drwxr-xr-x 2 root root 28 Jan 5 19:46 maven-archiver
drwxr-xr-x 3 root root 35 Jan 5 19:46 maven-status
-rw-r--r-- 1 root root 39101992 Jan 5 19:46 xxl-job-admin-2.3.1-SNAPSHOT.jar
-rw-r--r-- 1 root root 1950561 Jan 5 19:46 xxl-job-admin-2.3.1-SNAPSHOT.jar.original
[root@host53 xxl-job-master]# ll xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/
total 26780
drwxr-xr-x 3 root root 66 Jan 5 19:46 classes
drwxr-xr-x 3 root root 25 Jan 5 19:46 generated-sources
drwxr-xr-x 2 root root 28 Jan 5 19:46 maven-archiver
drwxr-xr-x 3 root root 35 Jan 5 19:46 maven-status
-rw-r--r-- 1 root root 27410100 Jan 5 19:46 xxl-job-executor-sample-springboot-2.3.1-SNAPSHOT.jar
-rw-r--r-- 1 root root 10052 Jan 5 19:46 xxl-job-executor-sample-springboot-2.3.1-SNAPSHOT.jar.original
[root@host53 xxl-job-master]#

这里为方便启动管理,把编译生成的jar包放到/usr/local/xxl-job目录下,具体看个人需求。

mkdir /usr/local/xxl-job
cp xxl-job-admin/target/xxl-job-admin-2.3.1-SNAPSHOT.jar /usr/local/xxl-job
cp xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/xxl-job-executor-sample-springboot-2.3.1-SNAPSHOT.jar /usr/local/xxl-job

五、启动与维护

先启动调度中心

再启动执行器

cd /usr/local/xxl-job/
nohup java -jar xxl-job-admin-2.3.1-SNAPSHOT.jar &
nohup java -jar xxl-job-executor-sample-springboot-2.3.1-SNAPSHOT.jar &

查看守护进程、日志

[root@host53 local]# ps -ef | grep xxl-job
[root@host53 local]# less nohup.out
[root@host53 local]# ss -ntl
LISTEN 0 100 [::]:7090 [::]:*
LISTEN 0 100 [::]:7091 [::]:*
LISTEN 0 128 [::]:9999 [::]:*

浏览器访问

​http://192.168.4.53:9090/xxl-job-admin/ ​

默认用户名与口令:admin/123456

分布式任务调度平台XXL-JOB[安装过程记录]_jar_02

六、过程中遇到的问题

查看启动后的输出日志nohup.out,有注意到这样的输出

暂时未弄明白具体原因。

16:34:31.363 logback [xxl-job, executor ExecutorRegistryThread] INFO  c.x.j.c.t.ExecutorRegistryThread - 
>>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='xxl-job-executor-sample', registryValue='http://129.204.215.84:9999/'},
registryResult:ReturnT [code=500, msg=xxl-job remoting error(connect timed out), for url : http://129.204.215.84:7090/xxl-job-admin/api/registry, content=null]

分布式任务调度平台XXL-JOB[安装过程记录]_分布式任务调度系统xxl-job_03

参考文档:

官方文档:​​https://www.xuxueli.com/xxl-job/​