XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
xxl-job需要的提前安装好以下环境:jdk、maven、mysql
宝塔安装mysql8.0
yum -y install jdk*
yum install maven -y
安装jdk
-
-
- #没有源的需要先配置jdk源
- cd /etc/yum.repos.d/
- mv CentOS-Base.repo CentOS-Base.repo.backup
- wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-
- yum clean all
- yum makecache
-
- #有jdk源跳过上面
-
- yum -y install jdk*
- yum list installed |grep java
- yum list installed |grep jdk
- yum search java | grep -i --color jdk
- yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
- java -version
-
-
下载源码包Releases · xuxueli/xxl-job · GitHub

tar -zxvf xxl-job-2.3.1.tar.gz

# vi xxl-job-admin/src/main/resources/application.properties
- server.port=8080 # 页面访问端口,根据实际需要求该
-
- spring.datasource.username=root # 连接数据库的用户名密码
- spring.datasource.password=password
# vi xxl-job-admin/src/main/resources/logback.xml
<property name="log.path" value="/home/xxl-job-2.3.1/xxl-job-admin.log"/>
# vi xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
- server.port=8081 # 根据需要修改9527
- xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin # 如果admin改了端口此处也要改
- xxl.job.executor.logpath=/home/xxl-job-2.3.1/logs/jobhandler # 执行器运行日志文件存储磁盘路径
# vi xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/logback.xml
<property name="log.path" value="/home/xxl-job-2.3.1/logs/xxl-job-executor-sample-springboot.log"/>
在解压目录下执行,/home/xxl-job-2.3.1
# mvn package

看到success就打包成功了
启动服务
- #nohup java -jar xxl-job-admin/target/xxl-job-admin-2.3.1.jar > /dev/null 2> /dev/null &
-
- #nohup java -jar xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/xxl-job-executor-sample-springboot-2.3.1.jar > /dev/null 2> /dev/null &
访问:http://xxx:8080/xxl-job-admin
XXL-JOB的集群部署非常简单,只需要注意两点:
- 网络的时间时间服务器上的时间同步的方法
-
- 1.安装ntpdate工具# yum -y install ntpdate
-
- 2.设置系统时间与网络时间同步# ntpdate cn.pool.ntp.org
-
- 3.将系统时间写入硬件时间# hwclock --systohc
操作到这里,一个基本的调度中心集群就搭建好了。
需要注意的是,XXL-JOB的集群并不是分片集群,不管部署多少台,同一时间执行调度任务的只会有一台。
集群部署纯粹只是为了处理单点故障问题。
1.同样安装jdk,maven,在节点上配置好服务器同步时间,开放9999端口
3.把xxl-job下载包拷贝到另一台集群节点/home/目录下解压
cd /home/xxl-job-2.3.1/
3.编辑配置文件
vi xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/logback.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration debug="false" scan="true" scanPeriod="1 seconds">
-
- <contextName>logback</contextName>
- <property name="log.path" value="/home/xxl-job-2.3.1/logs/xxl-job-executor-sample-springboot.log"/>
-
- <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
- </encoder>
- </appender>
-
- <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.path}</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
- </rollingPolicy>
- <encoder>
- <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
- </pattern>
- </encoder>
- </appender>
-
- <root level="info">
- <appender-ref ref="console"/>
- <appender-ref ref="file"/>
- </root>
-
- </configuration>
指定了日志目录:/home/xxl-job-2.3.1/logs/xxl-job-executor-sample-springboot.log
创建日志目录:
cd /home/xxl-job-2.3.1
mkdir /home/xxl-job-2.3.1/logs/
说明:日志地址不可不用改,当前机子只有/home目录下空间大点,所以才进行了修改
配置后台地址:
vi xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
- # web port
- server.port=9527
- # no web
- #spring.main.web-environment=false
-
- # log config
- logging.config=classpath:logback.xml
-
-
- ### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
- xxl.job.admin.addresses=http://192.168.100.11:8080/xxl-job-admin
-
- ### xxl-job, access token
- xxl.job.accessToken=default_token
-
- ### xxl-job executor appname
- xxl.job.executor.appname=xxl-job-data-center
- ### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
- xxl.job.executor.address=
- ### xxl-job executor server-info
- xxl.job.executor.ip=
- xxl.job.executor.port=9999
- ### xxl-job executor log-path
- xxl.job.executor.logpath=/home/xxl-job-2.3.1/logs/jobhandler
- ### xxl-job executor log-retention-days
- xxl.job.executor.logretentiondays=30
配置job后台地址:xxl.job.admin.addresses=http://192.168.100.11:8080/xxl-job-admin
192.168.100.11 是xxl-job后台地址
指定日志目录:xxl.job.executor.logpath=/home/xxl-job-2.3.1/logs/jobhandler
mkdir /home/xxl-job-2.3.1/logs/jobhandler
4.打包
#cd /home/xxl-job-2.3.1/
# mvn package
5.启动节点服务加入守护进程
安装nohup
yum install coreutils
- #nohup java -jar xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/xxl-job-executor-sample-springboot-2.3.1.jar > /dev/null 2> /dev/null &
- #ps -ef|grep xxl-job
加入开机服务
cd /home/xxl-job-2.3.1/
创建开机脚本
vi startup.sh
- #!/bin/bash
- nohup java -jar xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/xxl-job-executor-sample-springboot-2.3.1.jar > /dev/null 2> /dev/null &
chmod 777 startup.sh
cd /etc/rc.d
vi rc.local 在最后面加入内容,保存
- cd /home/xxl-job-2.3.1/
- sh /home/xxl-job-2.3.1/startup.sh
chmod +x /etc/rc.d/rc.local
可以reboot重启后,使用ps -ef | grep xxl-job查看是否成功
加入守护进程
vi xxljob.sh
chmod +x xxljob.sh
- #!/bin/bash
- #by yuanzelin8
- #2023-02-09
- #xxl-job守护进程;
- port=`ps -ef|grep xxl-job|wc -l`
- if [ $port -lt 2 ]; then
- cd /home/xxl-job-2.3.1
- /bin/sh /home/xxl-job-2.3.1/startup.sh
- echo "启用成功";
- fi
6.在后台添加节点注册
