分布式调度XXL-Job核心特性

DBC 1.1K 0
  • 什么是XXL-Job
    • XXL-JOB
      • 大众点评的员工徐雪里在15年发布的分布式任务调度平台,是轻量级的分布式任务调度框架,目标是开发迅速、简单、清理、易扩展; 老版本是依赖quartz的定时任务触发,在v2.1.0版本开始 移除quartz依赖
      • 官网地址:https://www.xuxueli.com/xxl-job/
      • GitHub地址:https://github.com/xuxueli/xxl-job/
    • xxl-job的设计思想
      • 将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。
      • 将任务抽象成分散的JobHandler,交由“执行器”统一管理
      • “执行器”负责接收调度请求并执行对应的JobHandler中业务逻辑。
      • 因此,“调度”和“任务”两部分可以相互解耦,提高系统整体稳定性和扩展性

       

  • 架构图(图片来源是xxl-job官网)
    • 调度中心
      • 负责管理调度的信息,按照调度的配置来发出调度请求
      • 支持可视化、简单的动态管理调度信息,包括新建、删除、更新等,这些操作都会实时生效,同时也支持监控调度结果以及执行日志。
    • 执行器
      • 负责接收请求并且执行任务的逻辑。任务模块专注于任务的执行操作等等,使得开发和维护更加的简单与高效

分布式调度XXL-Job核心特性插图

  • XXL-Job具有哪些特性
    • 调度中心HA(中心式):调度采用了中心式进行设计,“调度中心”支持集群部署,可保证调度中心HA
    • 执行器HA(分布式):任务分布式的执行,任务执行器支持集群部署,可保证任务执行HA
    • 触发策略:有Cron触发、固定间隔触发、固定延时触发、API事件触发、人工触发、父子任务触发
    • 路由策略:执行器在集群部署的时候提供了丰富的路由策略,如:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用LFU、最久未使用LRU、故障转移等等
    • 故障转移:如果执行器集群的一台机器发生故障,会自动切换到一台正常的执行器发送任务调度
    • Rolling实时日志的监控:支持rolling方式查看输入的完整执行日志
    • 脚本任务:支持GLUE模式开发和运行脚本任务,包括Shell、python、node.js、php等等类型脚本

发表评论 取消回复
表情 图片 链接 代码

分享