zoukankan      html  css  js  c++  java
  • xxl-job docker版分布式任务

    使用这分布式任务原因:流行,灵活,稳定,配置简单

    git地址:

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

    我比较失败,尝试docker版本安装失败。

    步骤1

    下载配置文件

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

    下载sql脚本文件

    wget https://raw.githubusercontent.com/xuxueli/xxl-job/2.2.0/doc/db/tables_xxl_job.sql

    在创数据库后,修改application.properties配置文件,主要是修改数据库连接、用户、密码信息,其他信息基本可以不动

    spring.datasource.url=jdbc:mysql://192.168.189:9205/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
    spring.datasource.username=root
    spring.datasource.password=123456

    然后就启动。

    这个启动脚本大致意思是,对外访问端口更改为48080,将本地下的配置文件application.properties挂载到容器根目录下。

    同事修改启动参数,启动时指定启动目录为映射的根目录的配置文件application.properties。

    docker run -d --name xxljob  
    --restart always 
    -p 48080:8080  
    -v /home/soft/xxljob/logs:/data/applogs 
    -v /home/soft/xxljob/conf/application.properties:/application.properties   
    -e PARAMS='--spring.config.location=/application.properties'  
    xuxueli/xxl-job-admin:2.2.0

    容器创建成功,但是提示连接不成功,后来查看发现是数据库连接地址没更改,还是127.0.0.1.。。

    原因也就是启动命令中的下面这句话未生效。。

    -e PARAMS='--spring.config.location=/application.properties'  

    后尝试修改启动命令如下,但是依旧没能连接上数据库

    docker run -d --name xxljob  
    --restart always 
    -p 48080:8080  
    -v /home/soft/xxljob/logs:/data/applogs 
    -e PARAMS="spring.datasource.url=jdbc:mysql://192.168.189:9205/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=123456"  
    xuxueli/xxl-job-admin:2.2.0

    最终解决办法:

    已经下载当前最新版本分支 xxl-job-admin 2.2.0到本地,修改配置文件,打jar包,然后上传jar包与dockerfile到服务器某目录,自己构建镜像,再运行镜像。

    下载,修改文件

    上传到服务器目录

    /home/****/image

     其中Dockerfile内容为

    [root@localhost images]# cat Dockerfile 
    FROM openjdk:8-jre-slim
    MAINTAINER cwx
    
    ENV PARAMS=""
    
    ENV TZ=PRC
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    
    ADD xxl-job-admin-*.jar /app.jar
    
    ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"]

    再执行构建镜像命令:

    cd /home/****/image // 进入目录
    // 构建镜像 当前文件件 docker build
    -t xxljob .

    构建成功,查看镜像

    docker images | grep xxljob

    得到如下信息。构建成功,接下来就是运行

    [root@localhost images]# docker images | grep xxljob
    xxljob                               latest              92363db8d4a3        26 minutes ago      223MB

    再次运行镜像:

    docker run -d --name xxljob  
    --restart always 
    -p 48080:8080  
    -v /home/soft/xxljob/logs:/data/applogs 
    xxljob:latest

    访问:默认后缀这个xxl-job-admin 访问名称可以在application.properties配置中修改。

    http://192.168.89.190:48080/xxl-job-admin

    最终访问成功。

  • 相关阅读:
    redis 中 set 和 hset 有什么不同,什么时候使用 hset 什么时候使用set?
    redis的底层数据结构
    python开发-实现redis中的发布订阅功能
    使用redis-py的两个类Redis和StrictRedis时遇到的坑
    python使用redis实现协同控制的分布式锁
    深入理解 Python 异步编程(上)
    linux中read,write和recv,send的区别
    socket常见问题
    python socket 编程之三:长连接、短连接以及心跳
    Flask快速入门
  • 原文地址:https://www.cnblogs.com/a393060727/p/13306981.html
Copyright © 2011-2022 走看看