基础架构之分布式任务平台

举报
架构师聊技术 发表于 2018/12/14 18:03:24 2018/12/14
【摘要】 项目中除了主流业务,往往带有很多附带功能,比如订单确认给客户发送邮件或者短信,流程审批完成给申请人发送审批完成消息,根据会员生日提前发生日问候 等等,这些功能一般都是以任务的形式存在,少量的任务还好,如果多了,一个集中管理任务的平台还是非常有必要的,xxl-job非常的优秀,是许雪里大神的作品,官方介绍在http://www.xuxueli.com/xxl-job/#/ 这篇文章主要介绍平台...

项目中除了主流业务,往往带有很多附带功能,比如订单确认给客户发送邮件或者短信,流程审批完成给申请人发送审批完成消息,根据会员生日提前发生日问候 等等,这些功能一般都是以任务的形式存在,少量的任务还好,如果多了,一个集中管理任务的平台还是非常有必要的,xxl-job非常的优秀,是许雪里大神的作品,官方介绍在http://www.xuxueli.com/xxl-job/#/ 这篇文章主要介绍平台的搭建及项目接入。

 

(一)  环境要求

  1. Centos 7.5.1804

  2. Docker 18.06.1-ce

  3. Mysql 5.7.11

(二)  安装设置

a)      Mysql安装,我是采用的5.7.11 的镜像安装,运行命令下载镜像docker pull mysql:5.7.11,然后执行 docker run --name mysql -p 3307:3306 -v /data/mysql/data:/var/lib/mysql -v /data/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.11,注意映射路径要提前在宿主机上创建。我这里3306已经被其他程序占用,改成了3307,实际项目可以用默认端口3306。

b)      安装

为了方便安装我整理成了安装包放在了百度网盘,只需两步就能安装完成,点击安装包下载 ,压缩包文件目录结构如下,

 

  1. application.properties 为配置文件,一般只需要修改这个配置文件即可。

  2. linux-start 为Linux下运行脚本,如果没有执行权限,记得加权限

  3. win-start 为windows 下运行脚本

  4. tables_xxl_job.sql 为数据结构脚本

  5. xxl-job-admin-1.9.2-SNAPSHOT.jar 为项目包

 

首先把数据结构导入到数据库,执行任何数据库客户端,执行数据结构脚本即可导入,记得修改application配置文件中的数据库链接信息,然后执行对应的环境脚本即可。等脚本运行完,可以在浏览器输入http://192.168.1.215:8089,可以看到登录界面

 

具体端口号可以在配置文件中设置,输入账号 admin/123456,就可以进入job管理平台,然后创建自己的执行器及任务。

 

在日志中可以方便的查看每次运行结果

 

 

更多使用说明参加官方文档 http://www.xuxueli.com/xxl-job/#/

 

c)      项目接入

    i.          job-client包

  

复制代码

  <dependency>

        <groupId>com.xuxueli</groupId>

        <artifactId>xxl-job-core</artifactId>

        <version>1.9.2-SNAPSHOT</version>

    </dependency>

复制代码

 

   ii.          编辑配置文件application.properties

    

复制代码

server.port=8020

    # 日志配置文件

    logging.config=classpath:logback.xml

    ### 管理地址

    xxl.job.admin.addresses=http://192.168.1.188:8088

    xxl.job.executor.appname=xxl-job-executor-sample

    xxl.job.executor.ip=192.168.1.188

    xxl.job.executor.port=9998

   

    xxl.job.alarmEmail=1441299@qq.com

    xxl.job.accessToken=

   

    xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler

    ### 日志保留时长

    xxl.job.executor.logretentiondays=-1


    xxl.job.db.driverClass=com.mysql.jdbc.Driver

    xxl.job.db.url=jdbc:mysql://localhost:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8

    xxl.job.db.user=root

    xxl.job.db.password=123456

   
    xxl.job.login.username=admin

xxl.job.login.password=123456

复制代码

 

       到这里分布式任务平台搭建及使用就介绍完了,如果使用过程有问题及好的建议,欢迎留言,共同进步。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。