微服务开发系列 第十一篇:XXL-JOB

总概

A、技术栈

  • 开发语言:Java 1.8
  • 数据库:MySQL、Redis、MongoDB、Elasticsearch
  • 微服务框架:Spring Cloud Alibaba
  • 微服务网关:Spring Cloud Gateway
  • 服务注册和配置中心:Nacos
  • 分布式事务:Seata
  • 链路追踪框架:Sleuth
  • 服务降级与熔断:Sentinel
  • ORM框架:MyBatis-Plus
  • 分布式任务调度平台:XXL-JOB
  • 消息中间件:RocketMQ
  • 分布式锁:Redisson
  • 权限:OAuth2
  • DevOps:Jenkins、Docker、K8S

B、本节实现目标

  • 搭建xxl-job环境
  • xxl-job-admin平台创建定时任务
  • 动态创建定时任务,实现动态创建15分钟未支付自动关闭订单的定时任务

一、部署xxl-job

1.1 下载xxl-job源码

下载地址:https://github.com/xuxueli/xxl-job

xxl-job源码

1.2 初始化“调度数据库”

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

调度中心支持集群部署,集群情况下各节点务必连接同一个MySQL实例。如果MySQL做主从,调度中心集群节点务必强制走主库。

1.3 部署调度中心 xxl-job-admin

1.3.1 xxl-job-admin项目

xxl-job源码里有3个项目:xxl-job-adminxxl-job-corexxl-job-executor-samples

  • xxl-job-admin:调度中心
  • xxl-job-core:公共依赖
  • xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)

我们部署调度中心需要用到xxl-job-admin

1.3.2 启动xxl-job-admin

xxl-job-admin调度中心项目用IDEA打开,配置文件地址:/xxl-job/xxl-job-admin/src/main/resources/application.properties

我们修改三个地方:

  • 端口:端口默认是8080,这里我们将端口改成8081
  • 数据库配置:修改数据库地址和账号密码
  • accessToken:默认是default_token

修改完后启动xxl-job-admin

修改端口

修改数据库地址和账号密码

修改accessToken

1.3.3 访问xxl-job-admin

调度中心访问地址:http://localhost:8081/xxl-job-admin ,该地址执行器将会使用到,作为回调地址。

默认登录账号 “admin/123456”, 登录后运行界面如下图所示。

xxl-job-admin

二、配置部署“执行器项目”

执行器项目:xxl-job-executor-sample-springboot,可直接使用,也可以参考其并将现有项目改造成执行器。

执行器项目作用:负责接收“调度中心”的调度并执行;可直接部署执行器,也可以将执行器集成到现有业务项目中。

我们不用xxl-job-executor-sample-springboot,而是直接用mall-order项目来做为执行器项目。

2.1 新增执行管理器

先在xxl-job-admin上新增一个执行管理器:executor-order

新增执行管理器

新增执行管理器

2.2 maven依赖

在mall-pom项目的pom.xml里引入xxl-job-core的maven依赖

<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>${xxljob.version}</version>
</dependency>

xxl-job-core

2.3 执行器组件配置

执行器组件,配置文件地址:/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java

将该代码复制到mall-order项目

XxlJobConfig

2.4 配置xxl-job连接信息

修改mall-order服务里的bootstrap-dev.yml配置信息

server:
  port: 7030

spring:
  application:
    name: mall-order

  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        namespace: dev_id
        file-extension: yml
        shared-configs:
          - data-id: common.yml
            group: DEFAULT_GROUP
            refresh: true
      discovery:
        namespace: dev_id

swagger:
  enabled: true
  title: 订单服务
  basePackage: com.ac.order.controller
  version: 1.0
  description: 订单服务相关接口

xxl:
  job:
    # 执行器通讯TOKEN [选填]:非空时启用;
    accessToken: 123456
    admin:
      # 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
      addresses: http://127.0.0.1:8081/xxl-job-admin
    executor:
      # 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值