【xxl-job】分布式任务调度系统xxl-job搭建

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用。

更多介绍,请访问官网:分布式任务调度平台XXL-JOB

在这里插入图片描述

一、任务调度中心(基于docker)【Version 2.4.0】

前提条件:任务调度中心(xxl-job admin)依赖于 mysql,所以必须要安装mysql才行!安装mysql有2种方式:docker部署或者在线安装或者编译安装部署。具体操作请自行解决。

主要实现方式与官方推荐略有不同,这里将application.properties 配置文件映射到容器内部, 然后利用spring.config.location覆盖默认的启动配置文件

1. 数据库脚本下载并在数据库中执行

wget https://github.com/xuxueli/xxl-job/raw/2.4.0/doc/db/tables_xxl_job.sql

如何执行不在此处赘述。

2. 拉取镜像

docker hub官方镜像地址: xxl-job-admin

docker pull xuxueli/xxl-job-admin

执行会报错:

Using default tag: latest Error response from daemon: manifest for xuxueli/xxl-job-admin:latest not found

为什么呢?因为官方没有打 latest 的tag标签,所以会提示下载失败!那怎么下载呢?必须制定版本才可以!截至本文发布时最新版本是2.4.0

那么下载命令为:

docker pull xuxueli/xxl-job-admin:2.4.0

也可在后续docker启动时自动拉取镜像。

3. 下载application.properties

wget https://github.com/xuxueli/xxl-job/raw/2.4.0/xxl-job-admin/src/main/resources/application.properties

4. 修改application.properties

主要修改服务启动的端口(使用默认8080的话可不修改),mysql的连接信息,SMTP的连接信息(可不修改如果不需要SMTP发送邮件的话)
在这里插入图片描述

5. 启动容器

docker run -d --name xxl-job-admin \-v [修改后的配置文件位置]:/application.properties \-p 8008:8080 --network=1panel-network \-e PARAMS='--spring.config.location=/application.properties' \--restart always \xuxueli/xxl-job-admin:2.4.0

下面是对每个参数的解释:

  • -d:在后台运行容器(以守护态模式运行)。
  • --name xxl-job-admin:指定容器的名称为"xxl-job-admin"。
  • -v [修改后的配置文件位置]:/application.properties:将修改后的配置文件挂载到容器中的/application.properties路径,可以通过这个文件来配置xxl-job-admin应用。
  • -p 8008:8080:端口映射,将主机的8008端口映射到容器的8080端口,这样你就可以通过主机的8008端口访问xxl-job-admin应用。
  • --network=1panel-network:将容器连接到名为"1panel-network"的网络,这样可以与其他容器进行通信。
  • -e PARAMS='--spring.config.location=/application.properties':设置环境变量PARAMS,其中--spring.config.location=/application.properties是指使用指定的配置文件启动xxl-job admin。
  • --restart always,当容器意外退出或宿主机重启时,Docker将自动重新启动xxl-job-admin容器
  • xuxueli/xxl-job-admin:2.4.0:指定要运行的Docker镜像,版本号为2.4.0,这是xxl-job-admin应用的官方镜像。

访问http://ip:8008/xxl-job-admin (如果修改过配置则访问 http://ip:[server.port]/[server.context-path])即可,默认用户名为admin,密码为123456

在这里插入图片描述

二、执行器【Version 2.4.0】

1. 下载Source并编译成jar包

2. 安装openjdk环境 [Ubuntu 2202]

运行下面代码即可

sudo apt install openjdk-11-jdk -y

完成后,可以通过检查 Java 版本来验证:

java -version

输出这种类型表示成功了

openjdk 19.0.2 2023-01-17
OpenJDK Runtime Environment (build 19.0.2+7-Ubuntu-0ubuntu322.04)
OpenJDK 64-Bit Server VM (build 19.0.2+7-Ubuntu-0ubuntu322.04, mixed mode, sharing)

3. 下载并根据实际情况修改

wget https://github.com/xuxueli/xxl-job/raw/2.4.0/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties

主要修改xxl-job admin的地址,以及执行器的名字

在这里插入图片描述

4. 运行

nohup java -jar ./xxl-job-executor-sample-springboot.jar --spring.config.location=./application.properties &

下面是对以上命令行的解释:

  • nohup:nohup命令可以让程序在后台运行,即使当前终端会话关闭,程序也会继续运行。
  • java -jar ./xxl-job-executor-sample-springboot.jar:这是运行Java应用程序的命令。使用java -jar来指定要运行的JAR文件,这里是xxl-job-executor-sample-springboot.jar
  • --spring.config.location=./application.properties:通过这个参数指定应用程序使用的配置文件路径为./application.properties。可以根据实际情况修改配置文件路径。
  • &:这个符号表示将程序放到后台运行,允许继续在终端中执行其他命令。

5. 验证

执行器中管理中对应节点已经自动注册,接下来就可以安排定时排程去运行shell脚本等了。

在这里插入图片描述

完成xxl-job分布式任务调度系统初步部署,后续可以根据情况添加更多的执行器和节点,也可以根据实际情况添加xxl-job admin任务调度中心的HA部署等。文章中还有很多自己还没搞明白的,需要继续钻研。如有瑕疵非常抱歉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21775.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

复习Javascript数组

JavaScript 数组 JS 数字属性JS 数组方法 JavaScript 数组用于在单一变量中存储多个值。 var cars ["Saab", "Volvo", "BMW"]; 什么是数组? 数组是一种特殊的变量,它能够一次存放一个以上的值。 如果您有一个项目清…

MySQL表单查询以及多表查询

1.单表查询 CREATE TABLE emp ( empno int(4) NOT NULL, ename varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, job varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, mgr int(4) NULL DEFAULT NULL, hi…

IOP JPCS独立出版 | 2023年第二届材料科学与工程国际会议(CoMSE 2023)

会议简介 Brief Introduction 2023年第二届材料科学与工程国际会议(CoMSE 2023) 会议时间:2023年7月21日-23日 召开地点:中国泰州 大会官网:www.icomse.org CoMSE 2023由四川大学、华南理工大学亚热带建筑科学国家重点实验室、国际电气电子与…

Raft算法之日志复制

Raft算法之日志复制 一、日志复制大致流程 在Leader选举过程中,集群最终会选举出一个Leader节点,而集群中剩余的其他节点将会成为Follower节点。Leader节点除了向Follower节点发送心跳消息,还会处理客户端的请求,并将客户端的更…

如何在 Windows 中免费合并 PDF 文件 [在线和离线]

PDF是一种广泛使用的文件格式,具有兼容性好、安全性高、易于打印、方便浏览等众多优点。在工作和学习过程中,经常需要将同一类型的PDF文件合并起来,以方便传输和查看,使得合并PDF文件成为一种重要的数据整合方法。 如果您想知道如…

android更换开机动画

android11 路径:device / {vendor-name} / {platform-name} / {device-name} / system / bootanimation.zip 例:android \ device \ softwinner \ ceres \ ceres-b6 \ system \ bootanimation.zip android13 路径:device / softwinner / {PRO…

基于单片机空气质量检测二氧化碳 一氧化碳温湿度PM2.5检测系统的设计与实现

功能介绍 以51单片机作为主控系统;对空气空气中有毒有害气体进行监测;使用LCD1602液晶显示,采集到的PM2.5值通过单片机串口传输;通过传感器对室内PM2.5粉尘进行检查;通过按键设置的上限值;当检测到有毒气体…

iOS开发 - NotificationService语音播报

iOS NotificationService语音播报 最近碰到个接收到推送要实现语音播报的需求,需要后台推送通知,APP客户端收到通知之后语音播放:“您的账户收到一笔巨款”的功能。 因为工程之前已经集成了极光推送服务。这里直接使用Notification Service…

Vue3+Vite+Pinia+Naive后台管理系统搭建之八:构建 login.vue 登录页

前言 如果对 vue3 的语法不熟悉的,可以移步Vue3.0 基础入门,快速入门。 项目所需要的图片,icon图标(推荐:阿里巴巴矢量图标库)自行获取,命名一致就行。 1. 构建 src/components/CopyRight.vu…

MySQL~索引的优缺点是什么?有哪些优化索引的方法?

1.索引的优缺点 优点:提高查询记录的速度。 缺点: 需要占用空间,索引是一种用空间换时间的做法创建索引和维护索引都需要消耗时间,会降低表的增删查改效率,因为每次进行增删查改,都需要对索引进行维护&a…

系统设计蓝图 / 备忘单

开发一个强大、可扩展和高效的系统可能会令人望而却步。然而,了解关键概念和组件可以使这个过程更可管理。在本博客文章中,我们将探讨系统设计的关键概念和组件,如DNS、负载均衡、API网关等,以及一个简明的备忘单,可以…

自定义类型详解

目录 一、结构体类型 1.认识结构体 2.如何使用结构体类型 2.1按顺序初始化结构体,并通过.符号访问 ​2.2无序初始化结构体,并用.符号访问 2.3通过地址的方式访问结构体变量成员 2.4结构体的自引用 2.4.1错误的自引用 2.4.2正确的自引用 3.结构体内存…