美文网首页
分布式任务集调度器方案设计书

分布式任务集调度器方案设计书

作者: 头发掉了 | 来源:发表于2022-11-03 07:56 被阅读0次

为什么会需要分布式任务集统一调度中心?

传统的方式:混合式,高耦合,不能分布式部署,存在重复调度,重复消费现象等问题,在J2E项目中如果需要满足分布式任务调度,通常需要引入Zookeeper等节点管理中间件来满足CAP设计理念原则。

设计理念:以CAP原则为设计导向,可以云化,组件化原则,支持分片,支持负载均衡策略,产品设计上尽量轻量级,必须支持可拓展属性并建议提供SDK或者支持插件化操作。

细粒化组件图如下↓

大致流程如下

001-1

@日志收集:入数据库,同时连带产生日常化日志文件,LogBack方式纳入ELK日志平台。(日常化日志文件进行历史文件清除,比如只保留最近的7天日志文件)

@负载均衡选举策略:大致满足如下选举策略,LRU(选举最近最少使用优先原则策略),LFU(选举最近最少频率优先原则策略),Random(随机选举原则),Random+Weight(随机+权重原则),FIFO(先进先出选举原则),FILO(先进后出选举原则),一致性Hash选举策略等,心跳检测坏节点自动下线原则。(控台WEB管理页面给出不同场景下推荐合适的选举策略,也可以通过监控数据自动切换成不同的选举策略)

建议:如果是最近一段时间,同一调度JOB上的作业集群都是以健康状态平稳运行,使用LRU策略,否则使用LFU策略。如果作业节点比较多的话,通常是具有中心化的Master-Slave集群特性,这时候采用一致性Hash选举策略算法较妥。

@重试机制: 可对每个JOB单独设置负载策略和重试策略。

1.支持失败后自动重试功能

2.支持阶梯式重试功能(例如默认重试次数2次,隔三分钟后增加重试次数五次,五分钟后增加重试次数十次)

3.支持重试无意义自动关闭重试功能,简单做可以通过异常行为来操作,比如因代码造成的不可逆行为触发一次重试后,识别到关键字就不需要再次触发重试了,并发出警告,警告以邮件形式通知运营。

@防止重复调度任务消费:较高成本可采用Redis实现分布式锁机制,较低成本采用数据库悲观锁机制,采用FileLock机制(文件读写锁机制),采用乐观锁机制(调度ID+版本号机制实现)。

@CICD,采用Docker部署

@邮件警告功能,采用JAVAMail基于邮件协议的组件造成此功能

@支持脚本化调度,通过操作系统或者其他任务调度平台返回的ACK编码,当出现ErrCode时自动触发重试机制

@前置+后置作业:采用业务上的触发器,并用分布式数据库实现数据库层面的回滚功能,其他层面上的回滚功能,采用回滚资源或者事件回滚等形式来实现该回滚达到最终一致性效果。

最终的原则是:使用方便,维护成本低,可拓展,面向二次开发友好,面向用户傻瓜式操作,前端控台部分可采用VUE/React等实现管理功能。

前端管理开放出来的模块如下

004

相关文章

  • xxl-job分布式调度入门

    1.什么是分布式调度分布式调度==》分布式 + 调度中心 + 执行器,调度中心根据对应任务执行条件去分布式的执行任...

  • 对分布式任务调度的理解

    1.什么是分布式任务调度 分布式任务调度就是在分布式环境下,定时任务的管理与执行 2.分布式任务调度的特性 分布式...

  • 分布式任务调度 SchedulerX

    参考文档: 为应用实现任务调度(EDAS 部署) 什么是分布式任务调度SchedulerX?分布式任务调度Sche...

  • spark.1

    Spark的组成:SparkCore:将分布式数据抽象为弹性分布式数据集(RDD),实现了应用任务调度,RPC,序...

  • Java高级工程师

    Elastic Job 分布式任务调度 Quartz 任务调度 RocketMQ RabbitMQ Acti...

  • 《分布式技术原理与算法解析》学习笔记Day10

    调度框架:单体调度 什么是调度? 分布式系统架构的目的是将多个服务器资源管理起来,对外提供服务。调度是指为用户任务...

  • 调度平台

    分布式调度平台 刚进公司,老板就让我做分布式任务调度的技术选型

  • 实战_资讯推荐场景中多路召回实践01

    召回服务框架 任务调度平台 主流的任务调度框架airflow airflow是一款开源的,分布式任务调度框架,它将...

  • 谈谈对分布式调度的理解

    文 平哥 | 20200519 分布式调度是什么? 调度:指的是定时任务分布式调度:指的就是在分布式集群环境下的...

  • 分布式调度器Quartz解读

    术语: scheduler:任务调度器 job: 被调度的任务 trigger:触发器,用于定义Job调度时间规则...

网友评论

      本文标题:分布式任务集调度器方案设计书

      本文链接:https://www.haomeiwen.com/subject/pwsytdtx.html