导言

xxl-job是一款开源的分布式任务调度平台,支持在线管理任务和调度任务。本文将详细介绍如何基于2.2.0版本进行xxl-job的部署,包括数据库的初始化、镜像的拉取和运行、以及Nginx的配置。


部署数据库

首先,我们需要部署MySQL数据库作为xxl-job的后端存储。执行以下命令:

docker run -d --name mysql --restart=always -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.6

初始化数据

使用以下链接下载xxl-job的数据库初始化脚本:

tables_xxl_job.sql

或者

tables_xxl_job.sql

执行脚本来初始化数据库表结构。


拉取镜像

拉取xxl-job-admin的2.2.0版本镜像:

docker pull xuxueli/xxl-job-admin:2.2.0

运行xxl-job-admin

执行以下命令运行xxl-job-admin:

docker run --net=host --restart=always -e PARAMS="--spring.datasource.url=jdbc:mysql://your_mysql_ip:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 --spring.datasource.password=123456 --xxl.job.login.password=123456" --name xxl-job-admin -d xuxueli/xxl-job-admin:2.2.0

其中,your_mysql_ip需要替换为你实际的MySQL服务器IP地址。

参数说明:

spring.datasource.url - 数据库JDBC连接参数

spring.datasource.username - 数据库登录用户名

spring.datasource.password - 数据库登录密码

xxl.job.login.username - 管理UI界面登录用户名

xxl.job.login.password - 管理UI界面登录密码

xxl.job.accessToken - 出于安全考虑,管理端与执行器配置成一致即可,或者两边都不配置(可选)

spring.mail.host - 邮箱SMTP配置(可选)

spring.mail.username - SMTP登录用户名(可选)

spring.mail.password - SMTP登录密码(可选)


验证

访问xxl-job-admin的管理界面,使用默认的登录用户名和密码进行验证:

http://your_server_ip:8080/xxl-job-admin

默认登录用户名:admin

默认登录密码:123456


配置Nginx

配置Nginx反向代理,将xxl-job-admin的访问指向后端的xxl-job-admin服务。

upstream xxljob-server{
    ip_hash;
    server your_xxljob_admin_ip:10100 weight=5 max_fails=3 fail_timeout=30s;
    server your_xxljob_admin_ip:10100 weight=5 max_fails=3 fail_timeout=30s;
}

server {
    listen       8080;
    server_name  localhost;
    location /xxl-job-admin/ {
        proxy_pass http://xxljob-server/xxl-job-admin/;
        index index.html index.htm;
    }
}

your_xxljob_admin_ip替换为你xxl-job-admin服务的实际IP地址。


结论

通过以上步骤,你已经成功部署了xxl-job的2.2.0版本,并配置了Nginx进行反向代理。现在,你可以使用xxl-job来管理和调度任务了。