Linux下分布式任务调度XXL-JOB基础环境部署

1 什么是xxl-job

XXL-JOB是美团点评开源的轻量级分布式任务调度平台。该项目于2015年11月发布第一个版本1.0,目前最新版本2.3.0;

XXL-JOB在国内线上生产环境的案例使用比较多,同时也是比较受欢迎的国产开源软件之一,这里笔者简单记录下Linux下xxl-job环境的搭建过程。

2 获取源码包

下载源码: https://github.com/xuxueli/xxl-job

这里笔者以最新的版本为例:https://github.com/xuxueli/xxl-job/archive/refs/tags/2.3.0.tar.gz

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

3 需要依赖的环境

因为需要打包,所以要有Maven环境(可参考我另一篇博文进行配置:https://blog.csdn.net/smilehappiness/article/details/116464543

因为部署的是jar应用,启动时需要依赖Jdk1.8+

因为xxl-job需要存储数据,需要依赖·Mysql数据库(可参考我另一篇博文进行配置:https://blog.csdn.net/smilehappiness/article/details/105344516

4 上传并解压源码包(可以使用IDEA工具直接打开项目,打包可运行的jar服务)

使用xftp或者其他工具上传源码包到Linux服务器上,然后解压源码包:
tar -zxvf xxl-job-2.3.0.tar.gz -C /usr/local

5 初始化必要的数据库和表

在源码包中,/xxl-job/doc/db/tables_xxl_job.sql,导入到mysql中

执行sql脚本后,会生成以下8张表:
在这里插入图片描述

6 修改xxl-job-admin的配置

位置: /xxl-job/xxl-job-admin/src/main/resources/application.properties

使用命令修改必要参数: vim /usr/local/xxl-job-2.3.0/xxl-job-admin/src/main/resources/application.properties

在这里插入图片描述

主要改这两个地方: 修改端口号(可以不改但是不能冲突),另外,数据库连接改为自己的mysql的用户名字和密码

7 打包项目,启动xxl-job服务

  • Linux配置maven环境

    进入到解压的文件夹下(/usr/local/xxl-job-2.3.0/)执行:mvn package
    会在target目录下生成可运行 xxl-job-admin-2.3.0.jar
    在这里插入图片描述

    注:这里最好使用IDEA工具打包,因为Linux上运行maven命令下载依赖超级慢,笔者用了40min才打包完成

  • 编写启动脚本启动xxl-job服务

    start.sh脚本

    #!/bin/sh
    
    
    var=`find . -name xxl-job-admin-2.3.0.jar`
    
    fname=${var##*/}
    
    java  -jar -Xms128M -Xmx256M -Xmn50M  ${fname} >>nohup.out 2>&1& echo $! > service.pid
    
    

    stop.sh脚本

    #!/bin/sh
    
    pid=$(cat service.pid)
    
    kill -9 $pid
    
    rm -rf service.pid
    
    

注: 这里有可能启动xxl-job失败(笔者之前没遇到过,最近装的时候偶然遇到了,这里做一下总结)

Error 1129: Host 'xxxxxxxx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

这是因为同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞;

解决方法:

1、提高允许的max_connect_errors数量(这种方法不彻底,后期还可能导致异常出现):

使用navicat连接上mysql,执行命令查看最大错误数量max_connect_errors: show variables like 'max_connect_errors';
修改max_connect_errors的数量为1000: set global max_connect_errors = 1000;
查看是否修改成功: show variables like 'max_connect_errors';

2、使用mysqladmin flush-hosts 命令清理一下hosts文件
查找mysqladmin的路径: whereis mysqladmin
执行命令修改: /usr/bin/mysqladmin flush-hosts -h192.168.1.121 -uroot -p
当然,这个也可以在数据库中操作,执行命令:flush hosts;

备注:配置有master/slave主从数据库的要把主库和从库都修改一遍

如果还启动失败,把mysql连接配置改为: jdbc:mysql://127.0.0.1:3306/my_shares?useUnicode=true&useSSL=false&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=Asia/Shanghai

8 访问xxl-job服务

访问地址: http://ip:端口号/xxl-job-admin,例如:http://127.0.0.1:9999/xxl-job-admin

注: 如果服务器开启了防火墙,需要开放,你上文设置的那个端口号(我的是9999)才能访问

笔者使用的是阿里云服务器,不仅需要配置安全组,防火墙也需要开放9999端口

  • 需要配置安全组
    在这里插入图片描述

  • 如果你的服务器或者虚拟机开启了防火墙,需要开放9999端口
    开启9999防火墙端口
    firewall-cmd --zone=public --add-port=9999/tcp --permanent
    重新加载防火墙配置
    firewall-cmd --reload

访问成功后的页面,如下图所示:
在这里插入图片描述

9 xxl-job执行器配置

xxl:
  job:
    accessToken:
    admin:
      # 这里的9999端口与上面xxl-job-admin配置的端口一致即可
      addresses: http://ip:9999/xxl-job-admin
    executor:
      address:
      appname: 服务的应用名称
      ip:
      port: 1234
      logpath: /usr/local/xxl-job-2.3.0/xxl-job-admin/logs
      logretentiondays: 30

10 xxl-job cron表达式

可参考链接:https://blog.csdn.net/qq_43563538/article/details/107541227

好啦,本篇搭建xxl-job教程,就先写到这里啦,希望对老铁们有所帮助~

参考资料链接:https://blog.csdn.net/zpp15603669517/article/details/113942508

写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,希望尽自己的努力,做到更好,大家一起努力进步!

如果有什么问题,欢迎大家评论,一起探讨

给自己的梦想添加一双翅膀,让它可以在天空中自由自在的飞翔!

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值