[Java 探索者之路] 一个大厂都在用的分布式任务调度平台

2024-03-05 1579阅读

温馨提示:这篇文章已超过385天没有更新,请注意相关的内容是否还可用!

分布式任务调度平台是一种能够在分布式计算环境中调度和管理任务的系统,在此环境下,各个任务可以在独立的节点上运行。它有助于提升资源利用率,增强系统扩展性以及提高系统对错误的容忍度。


文章目录

    • 1. 分布式任务调度平台
      • 1. 基本概念
        • 1.1 任务调度
        • 1.2 分布式计算
        • 2. 分布式任务调度平台的功能
        • 3. 分布式任务调度平台的应用场景
        • 4. 简而言之
        • 2. 什么是 xxl-job
          • 2.1 XXL-JOB的架构
          • 3. xxl-job 的简单使用
            • 1. 源码拉取
            • 2. 启动 db
            • 3. 初始化调度中心数据库
            • 4. 修改调度中心的数据库配置以及 logback 的日志地址
            • 5. 成功启动调度中心
            • 6. 打开调度中心的 web 页面
            • 7. 启动示例执行器代码
            • 8. 随便找一个任务注册
            • 9. 查看日志信息,发现执行结果失败了
            • 10. 回去看一眼源码,发现是

              1. 分布式任务调度平台

              1. 基本概念

              1.1 任务调度

              任务调度,是指在多任务的环境下,合理地分配系统资源,调度各个任务在什么时候,由哪一个处理器处理,以达到满足用户需求、提高系统资源利用率、提高系统吞吐量的目的。

              1.2 分布式计算

              分布式计算是指多个计算机系统之间通过网络连接,共享系统资源来实现高性能计算的技术。这种计算技术可以应对大数据量、高并发量、高I/O的场景。

              2. 分布式任务调度平台的功能

              分布式任务调度平台主要用于管理和调度任务,其主要功能包括:

              • 任务调度:按照预设的规则(如:时间点、时间间隔等)触发任务的执行。
              • 负载均衡:根据系统的负载情况,自动调整任务在各节点间的分配,均衡各节点的负载。
              • 容错处理:当某个节点出现故障时,能自动将该节点上的任务转移到其他节点上执行。
              • 任务监控:能够实时监控任务的运行状况,如运行时间、运行结果等。

                3. 分布式任务调度平台的应用场景

                以下是一些常见的应用场景:

                • 定时任务:在特定时间执行某项任务,例如每天晚上12点备份数据库。
                • 周期性任务:周期性地执行某项任务,例如每隔一小时统计网站的访问量。
                • 流量控制:在系统流量大量增长时,分布式任务调度平台可以按照预定的规则,调度更多的资源来处理任务,以应对流量峰值。

                  总的来说,分布式任务调度平台是大型分布式系统不可或缺的一部分,是分布式环境中任务管理的关键组件。

                  4. 简而言之

                  分布式调度平台,就是有个老大决定一个定时任务在多台机器中的哪一台机器执行。

                  2. 什么是 xxl-job

                  XXL-JOB是一个全功能、高扩展性的开源分布式任务调度框架,也是一个优秀的定时任务调度平台,给开发者带来便捷的定时任务管理和控制能力。它的核心目标是开发迅速、学习简单、轻量级、易扩展。

                  [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                  2.1 XXL-JOB的架构

                  XXL-JOB的系统架构设计清晰明了,可以粗略的分为三层:

                  • 调度中心:调度中心是XXL-JOB的核心,负责触发调度操作,同时提供操作界面。
                  • 执行器:执行器是任务运行的载体,负责接收调度中心的触发信号并执行相应的任务。
                  • 调度数据库:用于记录调度信息,如任务信息、调度日志等。

                    值得一提的是,XXL-JOB支持自定义任务处理逻辑,得益于这一点,它能用于各种场景,例如常见的数据同步、数据清洗等。

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    3. xxl-job 的简单使用

                    进入(xxl-job 的官网) ,如果想了解下的可以了解下,不想了解的就直接开始吧。

                    因为是开源项目,所以我接下来也是直接拉取的源码进行实验。如果是线上环境建议使用容器进行集群部署。

                    1. 源码拉取

                    1. 打开 github 官网,选择 realease 版本,因为 master 可能存在不稳定代码,但是实验嘛,其实也无所谓。https://github.com/xuxueli/xxl-job/
                    2. 获取到下载链接进行下载

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    1. 拉取到的项目结构大概是以下这样,其中 docker目录是我 docker-compose的数据库相关文件,方便测试。

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    以下是我的 docker-compose相关文件信息

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    2. 启动 db

                    进入到指定目录 docker 目录, 一键启动目录

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    3. 初始化调度中心数据库

                    复制源码文件中的 db 文件到数据库中执行初始化。

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    我这里就直接到 http://127.0.0.1:3307phpmyadmin 进行数据库操作了。

                    执行前后

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    4. 修改调度中心的数据库配置以及 logback 的日志地址

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    5. 成功启动调度中心

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    6. 打开调度中心的 web 页面

                    浏览器打开 http://127.0.0.1:8080/xxl-job-admin/, 输入初始账号 admin 密码 123456

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    登录成功

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    7. 启动示例执行器代码

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    可以看到启动了两个服务分别在 9998的无框架服务以及 9999的 spring 项目。回到调度中心的 web 页面,你会发现两个执行器已经自动注册到了调度中心。

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    在数据库中的表现为

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    此时,假如我们去修改其中一个调度器的名称,重新启动会怎样呢?

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    可以看到只剩 9999 的服务

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    这时候我们需要手动把新的执行器添加上。

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    刷新可以看到新的执行器自动注册

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    8. 随便找一个任务注册

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    启动任务

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    9. 查看日志信息,发现执行结果失败了

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

                    10. 回去看一眼源码,发现是

                    [Java 探索者之路] 一个大厂都在用的分布式任务调度平台

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]