1.概述
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。
xxl-job架构图
通过上图可知,可分为两个模块,分别是调度中心和执行器,调度中心主要管理调度信息,按照调度配置发出调度请求,调度信息配置,调度日志查询等相关功能;执行器收集调度请求并且执行或终止任务逻辑,日志回传等相关功能。
2.xxl-job基础环境部署
系统:centos-7.4
编译工具:mvn 3.6.0
数据库:MySQL 5.7.26
语言环境:java 1.8.0_92
mvn和java直接解压并且添加环境变量即可
```
# tar -xf jdk1.8.0_92.tar.gz -C /usr/local/
# tar -xf apache-maven-3.6.0-bin.tar.gz -C /usr/local/
# vim /etc/profie #配置环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_92
export JAVA_BIN=/usr/local/jdk1.8.0_92/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
MAVEN_HOME=/usr/local/apache-maven-3.6.0/
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
# source /etc/profie
# java -version
# mvn --version
# tar -xf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
# yum install -y mysql-community-*.rpm
# systemctl restart mysqld
# grep pass /var/log/mysqld.log #获取初始化密码
```
# mysql -uroot -p
mysql> set password = password('************');
mysql> FLUSH PRIVILEGES;
以上xxl-job任务调度中心基础环境已经搭建完成
3.xxl-job-admin服务端和客户端部署
# cd xxl-job-master
源码介绍:
- /doc :文档资料
- /db :“调度数据库”建表脚本
- /xxl-job-admin :调度中心,项目源码
- /xxl-job-core :公共Jar依赖
- /xxl-job-executor-samples :执行器,Sample示例项目(大家可以在该项目上进行开发,也可以将现有项目改造生成执行器项目),执行器也可以理解为客户端
# vim xxl-job-admin/src/main/resources/application.properties
对于这个配置需要进行如下修改
### xxl-job, datasource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=*********** #主要是数据库密码方面
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
### xxl-job, email #邮件方面看需求修改
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
# more xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
这个是客户端配置文件,特别注意是在其他客户端使用时,也需要先修改配置,在进行编译,最后才能进行部署
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
#这个地址需要修改成服务端的地址
# mysql -uroot -p
mysql> create database xxl_job;
mysql> use xxl_job;
mysql> source /root/xxl-job-master/doc/db/tables_xxl_job.sql #导入基础表信息
# cd /root/xxl-job-master/
# mvn clean
# mvn compile
# mvn package
# mkdir /usr/local/xxl-job-admin
# mv /root/xxl-job-master/xxl-job-admin/target/* /usr/local/xxl-job-admin/
# cd /usr/local/xxl-job-admin
# nohup java -jar xxl-job-admin-2.3.0-SNAPSHOT.jar >& /dev/null &
# mkdir /usr/local/xxl-job-springboot
# mv
/root/xxl-job-master/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/*
/usr/local/xxl-job-springboot/
# cd /usr/local/xxl-job-springboot
# nohup java -jar xxl-job-executor-sample-springboot-2.3.0-SNAPSHOT.jar >& /dev/null &
9999,8081端口是客户端端口,8080是控制台web界面端口。
访问地址:http://192.168.2.132:8080/xxl-job-admin/
登陆账号:admin 密码:123456
客户端在这个界面中叫做执行器。如下图所示,xxl-job-executor-sample是服务端本地默认开启的执行器。
注意:一个执行器下面可以有多个任务。