0
点赞
收藏
分享

微信扫一扫

1分钟 搭建xxl-job任务调度中心


文章目录

  • ​​一、前提环境​​
  • ​​1. 安装java环境​​
  • ​​2. 安装maven打包环境​​
  • ​​3. docker安装mysql​​
  • ​​二、搭建xxl-job 服务端(源码)​​
  • ​​三、搭建xxl-job 服务端(docker)​​
  • ​​四、常见异常解决方案​​
  • ​​4.1. docker中mysql容器的ip怎样获取?​​
  • ​​4.2. xxl-job 连接数据库失败?​​
一、前提环境
1. 安装java环境

下载(略)
环境变量

export JAVA_HOME=/app/jdk1.8.0_202
export PATH=$PATH:$GOROOT/bin
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

刷新环境变量

source

2. 安装maven打包环境

[root@localhost app]# wget https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
[root@localhost app]# tar -zxvf apache-maven-3.6.3-bin.tar.gz
[root@localhost app]# echo 'export PATH=/app/apache-maven-3.6.3/bin:$PATH' >>/etc/profile
[root@localhost app]# source /etc/profile
[root@localhost app]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /app/apache-maven-3.6.3


配置阿里云仓库镜像
[root@localhost app]# cd apache-maven-3.6.3/conf/
[root@localhost conf]# vim settings.xml

找到节点添加即可

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

3. docker安装mysql

docker 安装 mysql和Navicat Premium 远程连接

二、搭建xxl-job 服务端(源码)

Github地址:​​https://www.xuxueli.com/xxl-job/​​

# 调度数据库初始化SQL脚本” 并执行
调度数据库初始化SQL脚本” 位置为:
/xxl-job/doc/db/tables_xxl_job.sql

# 在线下载
wget https://github.com/xuxueli/xxl-job/archive/2.3.0.tar.gz

# 解压
tar -zxvf xxl-job-2.3.0.tar.gz

# 配置mysql密码
vim xxl-job-2.3.0/xxl-job-admin/src/main/resources/application.properties

# 项目编译打包
cd xxl-job-2.3.0/
mvn clean install -DskipTests

# xxl-job后台部署
cd xxl-job-2.3.0/xxl-job-admin/target
nohup java -jar xxl-job-admin-2.3.0.jar &

# 开放8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent

# 重启防火墙
firewall-cmd --reload

# 浏览器访问

1分钟 搭建xxl-job任务调度中心_mysql


1分钟 搭建xxl-job任务调度中心_maven_02


至此“调度中心”项目已经部署成功。

三、搭建xxl-job 服务端(docker)

# 拉取镜像
docker pull xuxueli/xxl-job-admin:2.3.0

# 创建容器并运行(这是注意mysql也在docker容器中)
# 第一种:docker中的xxl-job连接docker中的mysql
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://172.17.0.2:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true --spring.datasource.password=root" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:2.3.0


# 普通非docker中的mysql(密码默认)
# 第二种:docker中的xxl-job连接宿主机上的mysql
docker run -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:2.3.0

# 普通非docker中的mysql(密码非默认)
# 第三种:docker中的xxl-job连接宿主机上的mysql
docker run -e PARAMS="--spring.datasource.password=root" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:2.3.0

注:
1.以上属于2种场景(都是docker中应用和一个是docker应用一个不是)
2.第一种:不要添加&serverTimezone=Asia/Shanghai因为docker容器内部不识别,待定位具体原因
3.对于docker中的应用和docker中的应用之间要通信连接,需要连接docker内部的ip,而非宿主机的ip

账号/密码:

admin/123456

1分钟 搭建xxl-job任务调度中心_maven_03

1分钟 搭建xxl-job任务调度中心_xxl-job_04

四、常见异常解决方案
4.1. docker中mysql容器的ip怎样获取?

docker 中用docker 启动应用访问docker中的mysql

4.2. xxl-job 连接数据库失败?

现象:

1分钟 搭建xxl-job任务调度中心_maven_05


解决方案:

通过查看docker中启动的xuxueli/xxl-job-admin:2.3.0容器的日志定位和分析问题‘

# 查看正在运行的xuxueli/xxl-job-admin:2.3.0容器的容器id
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5863bea66ff4 xuxueli/xxl-job-admin:2.3.0 "sh -c 'java -jar $J…" 5 minutes ago Up 5 minutes 0.0.0.0:8080->8080/tcp xxl-job-admin
8172ef0f622c mysql "docker-entrypoint.s…" 39 minutes ago Up 9 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mymysql
[root@localhost ~]# docker logs -f 5863bea66ff4

异常关键日志:

com.mysql.cj.exceptions.CJException: Unknown database 'xxl_job'

1分钟 搭建xxl-job任务调度中心_docker_06


通过客户端连接mysql服务端查看xxl_job是否存在

1分钟 搭建xxl-job任务调度中心_maven_07


由于mysql容器是咱们刚创建的因此xxl_job不存在

解决方案:

1.创建数据库

2.初始化表结构

1分钟 搭建xxl-job任务调度中心_mysql_08

1分钟 搭建xxl-job任务调度中心_xxl-job_09


1分钟 搭建xxl-job任务调度中心_docker_10


1分钟 搭建xxl-job任务调度中心_mysql_11

1分钟 搭建xxl-job任务调度中心_mysql_12


举报

相关推荐

0 条评论