14.16. XXL-JOB
14.16.1. 部署admin
14.16.1.1. 准备源码
获取源码:
git clone https://github.com/xuxueli/xxl-job.git
安装xxl-job-core:
cd xxl-job/xxl-job-core
mvn install
cd xxl-job
mvn dependency:resolve
初始化数据库:
cd xxl-job/doc/db
lxc file push tables_xxl_job.sql mysql-master/root/
lxc exec mysql-master -- bash
mysql
mysql> source tables_xxl_job.sql
创建mysql账号
CREATE USER 'xxljob'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON xxl_job.* TO 'xxljob'@'%';
14.16.1.2. xxl-job-admin
修改配置:
修改xxl-job-admin源码中的application.properties
spring.datasource.url=jdbc:mysql://10.196.126.10:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=账号
spring.datasource.password=密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
打包:
cd xxl-job-admin
mvn package
lxc file push target/xxl-job-admin-2.4.1.jar xxl-job-admin-1/root/
lxc file push target/xxl-job-admin-2.4.1.jar xxl-job-admin-2/root/
启动
java -jar xxl-job-admin-2.4.1.jar
访问
http://10.196.126.21:8080/xxl-job-admin/
默认登录账号 “admin/123456”,
调度中心支持集群部署,提升调度系统容灾和可用性。
调度中心集群部署时,几点要求和建议:
DB配置保持一致; 集群机器时钟保持一致(单机集群忽视); 建议:推荐通过nginx为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回调配置、调用API服务等操作均通过该域名进行。
startup.sh
#!/bin/bash
# XXL-JOB Admin 2.4.1 安装路径
XXL_JOB_JAR_PATH="/root/xxl-job-admin-2.4.1.jar"
# 检查是否安装了 Java
if ! command -v java &> /dev/null
then
echo "Java 未安装。请先安装 Java。"
exit 1
fi
# 检查 XXL-JOB JAR 文件是否存在
if [ ! -f "$XXL_JOB_JAR_PATH" ]; then
echo "未找到 XXL-JOB JAR 文件:$XXL_JOB_JAR_PATH"
exit 1
fi
# 启动 XXL-JOB Admin
nohup java -jar "$XXL_JOB_JAR_PATH" > /root/xxl-job-admin.log 2>&1 &
# 检查 XXL-JOB Admin 是否成功启动
if [ $? -eq 0 ]; then
echo "XXL-JOB Admin 已成功启动。日志文件:/root/xxl-job-admin.log"
else
echo "XXL-JOB Admin 启动失败。"
exit 1
fi
shutdown.sh
#!/bin/bash
# 获取 XXL-JOB Admin 进程 ID
PID=$(ps -ef | grep 'xxl-job-admin-2.4.1.jar' | grep -v 'grep' | awk '{print $2}')
# 检查是否找到进程 ID
if [ -z "$PID" ]; then
echo "未找到 XXL-JOB Admin 运行的进程。"
exit 1
fi
# 停止 XXL-JOB Admin 进程
kill "$PID"
# 检查 XXL-JOB Admin 是否成功停止
if [ $? -eq 0 ]; then
echo "XXL-JOB Admin 已成功停止。"
else
echo "停止 XXL-JOB Admin 失败。"
exit 1
fi
配置负载均衡
14.16.2. 执行器
修改配置
vim xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
# 修改成xxl-job-admin的地址,如果admin是集群,则使用负载均衡器的地址。
xxl.job.admin.addresses=http://10.196.126.14/xxl-job-admin
# 执行器的名字,如果执行器要实现集群,名字要统一。
xxl.job.executor.appname=xxl-job-executor-sample
# 其他属性根据情况来吧。
运行
java -jar xxl-job-executor-sample-springboot-2.4.1.jar
执行器运行后,在xxl-job-admin的执行器管理中,可以看到注册的执行器的实例。