分布式定时任务系列8:XXL-job源码分析之远程调用

这篇具有很好参考价值的文章主要介绍了分布式定时任务系列8:XXL-job源码分析之远程调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 传送门

分布式定时任务系列1:XXL-job安装

分布式定时任务系列2:XXL-job使用

分布式定时任务系列3:任务执行引擎设计

分布式定时任务系列4:任务执行引擎设计续

分布式定时任务系列5:XXL-job中blockingQueue的应用

分布式定时任务系列6:XXL-job触发日志过大引发的CPU告警

分布式定时任务系列7:XXL-job源码分析之任务触发

 Java并发编程实战1:java中的阻塞队列

通讯模块剖析

一次完整的任务调度通讯流程
  1. - 1、“调度中心”向“执行器”发送http调度请求: “执行器”中接收请求的服务,实际上是一台内嵌Server,默认端口9999;
  2. - 2、“执行器”执行任务逻辑;
  3. - 3、“执行器”http回调“调度中心”调度结果: “调度中心”中接收回调的服务,是针对执行器开放一套API服务;

上面的3个步骤流程是XXL-job官网给出的任务调度的通讯流程。如果看过前面分布式定时任务系列5:XXL-job中blockingQueue的应用,分布式定时任务系列7:XXL-job源码分析之任务触发这2节,应该大致了解了XXL-job任务的触发与执行。不过既然XXL-job号称是分布式调度,无可避免的会涉及到远程调用。但在分析源码之前,还是再来看看对应的架构设计

架构设计

设计思想

将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。

将任务抽象成分散的JobHandler,交由“执行器”统一管理,“执行器”负责接收调度请求并执行对应的JobHandler中业务逻辑。

因此,“调度”和“任务”两部分可以相互解耦,提高系统整体稳定性和扩展性;

从上面的描述中,可以抽象出下面设计模型:

分布式定时任务系列8:XXL-job源码分析之远程调用,# 分布式调度,xxl-job

系统组成

调度中心

  • 调度模块(调度中心)
    负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块;
    支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,GLUE开发和任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志,支持执行器Failover。

执行器

  • 执行模块(执行器)
    负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效;
    接收“调度中心”的执行请求、终止请求和日志请求等。

源码目录

结合前一节的代码模块来理解,可以得出下面的结论:

分布式定时任务系列8:XXL-job源码分析之远程调用,# 分布式调度,xxl-job

  • xxl-job-admin,就是调度中心源码,也就是前面第7节的分析任务触发的模块
  • xxl-job-core,就是执行器源码,也是就是前面第5节的分析任务执行的模块(不过并不全面,只是里面的异步相关部分)
  • xxl-job-executor-samples,就是业务代码,跟前面几节里面的auth模块的一样,跟实际代码相关 

而这节的重点就是那个绿色箭头:调度执行,远程调用!! 

自研RPC

从上面的架构图中,可以看到XXL-job框架对任务触发过程中涉及的远程调用称之为xxl-rpc模块。画一张部署图(一种可能的部署方式,不保熟),从部署的角度来探讨一下:

分布式定时任务系列8:XXL-job源码分析之远程调用,# 分布式调度,xxl-job文章来源地址https://www.toymoban.com/news/detail-810962.html

到了这里,关于分布式定时任务系列8:XXL-job源码分析之远程调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)

    xxl-job 是一个分布式任务调度平台,它提供了强大的任务调度和执行能力,可以帮助我们实现任务的自动化调度和执行。本文将介绍如何在 Docker 环境下部署 xxl-job,并将其与 Spring Boot 进行整合。 数据库脚本:tables_xxl_job-2.4.0.sql Docker 镜像地址: https://hub.docker.com/r/xuxueli/xxl-jo

    2024年02月06日
    浏览(72)
  • 【xxl-job】分布式任务调度系统xxl-job搭建

    XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用。 更多介绍,请访问官网:分布式任务调度平台XXL-JOB 前提条件:任务调度中心(xxl-job admin)依赖于 mysql,所以必须要安装mysql才行!安装mysql有2种方式:docker部署或

    2024年02月16日
    浏览(47)
  • xxl-Job分布式任务调度

    我们可以先思考一下业务场景的解决方案: 某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。 某银行系统需要在信用卡到期还款日的前三天进行短信提醒。 某财务系统需要在每天凌晨0:10结算前一天的财务数据,统计汇总。 12306会根据车次的不同,设置某

    2024年02月15日
    浏览(44)
  • xxl-Job分布式任务调度 入门

    我们可以先思考一下业务场景的解决方案: 某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。 某银行系统需要在信用卡到期还款日的前三天进行短信提醒。 某财务系统需要在每天凌晨0:10结算前一天的财务数据,统计汇总。 12306会根据车次的不同,设置某

    2024年02月03日
    浏览(101)
  • Java -- XXL-JOB分布式任务调度平台

    XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用 xxl是xxl-job的开发者大众点评的【许雪里】名称的拼音开头 官网地址 分布式任务调度平台XXL-JOB 文档地址 中文文档 English Docu

    2024年02月11日
    浏览(46)
  • 【分布式任务调度】XXL-JOB的任务调度实现原理(四)

    XXL-JOB专题历史文章列表: XXL-JOB调度中心集群部署配置(一) XXL-JOB执行器配置及定时任务的创建(二) XXL-JOB调度中心对执行器的上下线感知实现原理(三) 本篇的主要内容是XXL-JOB的任务调度流程及其实现原理,包含了两个部分: 调度中心如何进行任务调度 执行器执行任

    2024年02月16日
    浏览(42)
  • spring boot + xxl-job 分布式任务调度

    1、任务调度 1.1、什么是任务调度 我们可以先思考一下下面业务场景的解决方案: 某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。 某财务系统需要在每天上午10点前结算前一天的账单数据,统计汇总。 某电商平台每天凌晨3点,要对订单中的无效订单进行

    2024年02月09日
    浏览(59)
  • XXL-JOB中间件【实现分布式任务调度】

    目录 1:XXL-JOB介绍 2:搭建XXL-JOB 2.1:调度中心 2.2:执行器 2.3:执行任务 3:分片广播 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 官网:https://www.xuxueli.com/xxl-

    2024年02月03日
    浏览(106)
  • 初识轻量级分布式任务调度平台 xxl-job

    大家好,这里是 Rocky 编程日记 ,喜欢后端架构及中间件源码,目前正在阅读 xxl-job 源码。同时也把自己学习该 xxl-job 笔记,代码分享出来,供大家学习交流,如若笔记中有不对的地方,那一定是当时我的理解还不够,希望你能及时提出。 如果对于该笔记存在很多疑惑,欢迎

    2024年02月10日
    浏览(267)
  • 【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目

                                    💧 分布式任务调度平台 X X L − J O B 急速入门:从零开始将 X X L − J O B 接入到自己的项目 color{#FF1493}{分布式任务调度平台 XXL-JOB 急速入门:从零开始将 XXL-JOB 接入到自己的项目} 分布式任务调度平台 XX L − J OB 急速入门:从零

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包