06_虚拟机中间件部署_xxl-job 部署

xxl-job 部署

xxl-job 部署

代码拉取

https://github.com/xuxueli/xxl-job

直接 IDea 拉取

初始化数据库

我是打算把xxl-job也部署到虚拟机的,所以这个xxl-job存储数据的数据库也直接建立在已有的 nfturbo 用户上。

xxl-job的数据库初始化sql语句在这里

直接新建一个数据库,然后执行初始化数据

配置文件修改:

改个端口号防止冲突,以及数据库的连接

yaml 复制代码
### web
# 调度中心 Web 服务的监听端口
server.port=23333
# 访问地址变为:http://192.168.209.129:23333/xxl-job-admin
server.servlet.context-path=/xxl-job-admin

### actuator 所有监控接口的统一前缀
management.endpoints.web.base-path=/actuator
# 关闭 Actuator 中"邮件健康检查"功能(避免不必要的告警)。一般保持 false 即可
management.health.mail.enabled=false

### resources 静态资源
# DispatcherServlet 的加载时机。0 表示容器启动时立即加载(默认 -1 为懒加载)。设为 0 可加快首次请求响应
spring.mvc.servlet.load-on-startup=0
#静态资源 URL 匹配模式。所有 /static/xxx 的请求都会找静态资源
spring.mvc.static-path-pattern=/static/**
#静态资源文件存放位置。只扫描 classpath 下的 /static/ 目录(jar 包内)
spring.web.resources.static-locations=classpath:/static/

### freemarker 模板引擎配置
#Freemarker 模板文件存放路径(xxl-job 的页面模板都在这里)
spring.freemarker.templateLoaderPath=classpath:/templates/
#模板文件后缀
spring.freemarker.suffix=.ftl
#字符编码
spring.freemarker.charset=UTF-8
spring.freemarker.request-context-attribute=request
#Freemarker 数字格式化规则。显示小数时最多保留 8 位,不足不补 0
spring.freemarker.settings.number_format=0.##########
#安全策略:限制 Freemarker 模板中 new 任意 Java 类(防止模板注入攻击)。safer 是推荐的安全模式
spring.freemarker.settings.new_builtin_class_resolver=safer

### mybatis -  MyBatis Mapper XML 文件位置。扫描 classpath 下的所有 *Mapper.xml 文件
mybatis.mapper-locations=classpath:/mapper/*Mapper.xml

### datasource-pool   -> HikariCP 连接池配置; Spring Boot 默认连接池
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
# 最小空闲连接数
spring.datasource.hikari.minimum-idle=10
# 最大连接池大小
spring.datasource.hikari.maximum-pool-size=30
# 自动提交
spring.datasource.hikari.auto-commit=true
# 空闲连接存活时间(ms)
spring.datasource.hikari.idle-timeout=30000
# 连接池名称(日志用)
spring.datasource.hikari.pool-name=HikariCP
# 连接最大存活时间(15分钟)
spring.datasource.hikari.max-lifetime=900000
# 获取连接超时(10秒)
spring.datasource.hikari.connection-timeout=10000
# 连接有效性测试 SQL
spring.datasource.hikari.connection-test-query=SELECT 1
# 验证超时(1秒)
spring.datasource.hikari.validation-timeout=1000

### xxl-job, datasource 核心数据库连接 -- 这个就得改成我自己创建的数据库了
spring.datasource.url=jdbc:mysql://192.168.209.129:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=ljh
spring.datasource.password=@Ljh123456@
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

### xxl-job, email 邮件告警配置
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=xxx@qq.com
spring.mail.from=xxx@qq.com
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

### xxl-job, access token 安全令牌
xxl.job.accessToken=default_token

### xxl-job, timeout by second, default 3s 调度中心触发任务时的 HTTP 超时时间(秒)。默认 3 秒,一般够用
xxl.job.timeout=3

### xxl-job, i18n (default is zh_CN, and you can choose "zh_CN", "zh_TC" and "en")
#管理后台语言(zh_CN = 简体中文,zh_TC = 繁体,en = 英文)
xxl.job.i18n=zh_CN

## xxl-job, triggerpool max size 触发线程池
#fast:快速任务(<3s),最多 300 线程
xxl.job.triggerpool.fast.max=300
#slow:慢任务(≥3s),最多 200 线程
xxl.job.triggerpool.slow.max=200

### xxl-job, log retention days 日志保留天数
xxl.job.logretentiondays=30

### xxl-sso 单点登录相关,基本不用动
xxl-sso.token.key=xxl_job_login_token
# 有效期7天
xxl-sso.token.timeout=604800000
xxl-sso.client.excluded.paths=
xxl-sso.client.login.path=/auth/login

访问:

直接执行启动类即可

http://localhost:23333/xxl-job-admin/#/xxl-job-admin/dashboard

账号密码是默认的:

账号:admin

密码:123456

部署到服务器:

打包

然后找到 admin 模块的 jar 即可

本地上传到虚拟机

PowerShell 是 Windows 的"超级命令行终端",类似 Linux 的 Bash;

在PowerShell用 scp 命令复制上传到linux;

虚拟机存放jar包的路径是我自己创建的,用于短期使用,如果是生产级别的,路径就需要严格划分。

复制代码
到指定位置执行这个命令
scp xxl-job-admin-3.4.0-SNAPSHOT.jar  ljh@192.168.209.129:/home/ljh/nfturbo/middleware/xxl-job/my-jar

上传成功

虚拟机后台执行jar包

复制代码
 cd /home/ljh/nfturbo/middleware/xxl-job/my-jar
 
到指定位置执行,后台运行这个jar包
nohup java -jar xxl-job-admin-3.4.0-SNAPSHOT.jar > xxl-job-admin.out 2>&1 &

使用 nohup 结合 & 是 Linux 上最简单的方式,让你的 JAR 包在后台运行,并且即使你退出 SSH/终端、关闭会话也不会停止(nohup 忽略 SIGHUP 信号)。
> xxl-job-admin.out:标准输出(日志)写入这个文件
2>&1:标准错误也写入同一个文件(否则错误会丢到 nohup.out 或终端)
&:放到后台运行

查看是否启动成功

1、查看进程

查看是否启动成功,有进程只是代买

复制代码
ps -ef | grep xxl-job-admin
2、查看日志

上面的启动jar包命令,把xxl-job-admin 的日志输出在 xxl-job-admin.out 这个文件里面,所以日志在这个文件里面查看

复制代码
tail -n 50 xxl-job-admin.out
报错信息
java 复制代码
Caused by: java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[file] - Failed to create parent directories for [/data/applogs/xxl-job/xxl-job-admin.log]
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[file] - openFile(/data/applogs/xxl-job/xxl-job-admin.log,true) call failed. java.io.FileNotFoundException: /data/applogs/xxl-job/xxl-job-admin.log (No such file or directory)

Suppressed: java.io.FileNotFoundException: /data/applogs/xxl-job/xxl-job-admin.log (No such file or directory)
		at java.base/java.io.FileOutputStream.open0(Native Method)
处理

意思是 XXL-Job Admin 启动时,尝试写日志文件 /data/applogs/xxl-job/xxl-job-admin.log,但是找不到这个路径。Spring Boot + Logback 会在启动时创建日志文件,如果目录不存在,就会报这个错误。

复制代码
1、在对应位置创建文件夹
sudo mkdir -p /data/applogs/xxl-job
2、给文件夹赋予权限
sudo chown -R $(whoami):$(whoami) /data/applogs/xxl-job
3、重启jar包
nohup java -jar xxl-job-admin-3.4.0-SNAPSHOT.jar > xxl-job-admin.out 2>&1 &
4、再次查看日志
tail -n 50 xxl-job-admin.out

可以看到日志没有问题

日志的位置

部署成功

复制代码
http://192.168.209.129:23333/xxl-job-admin/#/xxl-job-admin/dashboard
相关推荐
阿昌喜欢吃黄桃13 天前
RocketMq事务消息原理
java·中间件·消息队列·rocketmq·mq
半夜修仙14 天前
延迟队列的介绍及常见问题
java·数据库·中间件·rabbitmq
手握风云-14 天前
一条消息的旅程:RabbitMQ 学习与实践(一)
中间件·rabbitmq
RH23121115 天前
2026.6.8Linux
java·数据库·中间件
理人综艺好会16 天前
双Token机制在实际项目中的应用与实践
中间件·token
番茄去哪了16 天前
神领物流面试题(一)
java·大数据·中间件
念何架构之路16 天前
消息中间件
中间件
都说名字长不会被发现16 天前
Spring Boot Starter 中间件账号密码加密方案设计与实现
java·spring boot·后端·中间件
瀚高PG实验室17 天前
java中间件无法连接数据库
java·数据库·中间件·瀚高数据库
之歆17 天前
Day11_Express 深入解析:从中间件到项目实战
中间件·express