当前位置: 首页 > 后端技术 > Java

SchedulerX如何帮助用户解决分布式任务调度问题?

时间:2023-04-01 14:19:57 Java

简介:本文简要介绍了任务调度平台的资源定义、可视化管控能力、分布式批处理能力,并结合实际业务场景提供了一些基于SchedulerX能力的基础参考案例。希望通过以上内容,让大家能够轻松熟悉任务调度平台的接入和使用。对于现有用户,也可以根据自身团队特点,实现平台资源管控隔离,在产品业务量增长后,通过分布式批处理能力提升处理能力。效率。作者:千玺前言在各种业务系统场景中,存在着大量的定时触发和周期触发的运行指定业务任务的需求场景,分布式任务调度中间件平台存在的意义在于管理和支撑以上场景。Linux中的crontab、Java中的Timer等都涉及到周期性的调度和运行任务,完成一系列自动化处理的业务场景。周期性的定时操作是任务调度最基本的特征,但随着业务的扩展和发展,对任务调度中间件平台的能力提出了更高的要求。在传统业务系统中,Quartz和Spring调度包以框架集成的方式为业务开发定时任务提供了很多便利,但是随着各种业务应用的分布式、微服务化部署,大量零散的定时任务分散开来在各个业务应用系统中很难对所有全局任务进行统一的可视化监控和运维管理,而分布式任务调度中间件平台将有效地对各个调度任务进行统一的可视化管控。image.gif分布式任务调度平台以高可靠定时任务调度为核心基础,以可视化管控为核心价值,围绕这两个基本要素结合业务发展趋势扩展平台能力。SchedulerX概述平台资源管理站以统一的运维管理视角面向所有业务应用,抽象出团队和部署环境隔离资源管理的“空间”概念,对业务应用和机器集群实现一层抽象,称为“应用程序”。每个业务应用都可以在调度平台上创建对应的应用组,与实际的业务应用进行对接,使得各个业务团队可以在统一的平台上管控各自业务团队的任务,互不干扰。另外基于阿里云上的RAM权限策略,可以统一进行合理的资源权限控制和隔离,通过上述资源模型业务平台架构师,可以根据自己团队的组织特点,进行合理的资源权限控制和隔离。空间和应用规划和权限策略配置,明确实现任务调度资源的访问控制隔离和全局控制。平台可视化管控任务是任务调度平台管控调度操作的基本单元。任务运行可视化,让原本隐藏在各种业务应用中的任务安静运行,并让每个任务的运行状态和执行结果得到展示和提醒。在没有可视化的情况下,任务的运行状态和结果将是未知的或难以察觉的。即使经过大量迭代的业务开发,应用系统中的定时任务数量也无法标准化。分布式分片批处理随着业务量的推进而发展,在一些定时任务场景中,会伴随大数据量分布式批处理的需求。定时协调多台机器完成大规模数据处理也成为任务调度平台的重要特征。通过分布式批处理模型,用户可以简单地提高大规模数据处理的效率。简单应用场景下面将基于任务调度平台列出几个简单的业务使用场景,以初步了解任务调度平台可以做什么。基于广播模式下的广播集群运维场景,创建的调度任务会以给定的周期频率向业务应用集群或安装了Agent的ECS集群发送任务运行命令。然后动态广播到。基于这个特性,用户可以构建很多自定义的使用场景,例如:定期清理日志/临时数据:定期清理业务产生的日志或临时文件。服务器检测:用户可以通过广播shell脚本快速搭建简单的服务器磁盘/内存/CPU健康检测场景。业务缓存刷新:对于有本地缓存??的业务场景,可以周期性的进行缓存刷新和指定业务应用服务预热。业务服务检测:用户可自定义对各类业务指标的采集和判断,基于调度平台灵活构建轻量级业务监控。定时业务场景在各个行业的业务场景中,定时任务都是在任务调度平台上处理的,是最广泛的业务形态。订单处理通知等。定时数据同步处理:员工组织架构信息同步、业务基本信息同步、定时业务数据批量清算、交易订单超时处理等定时数据生成推送:月/季/年报表生成推送、事件公告定时推送、定期推送消费账单等。当上述业务需要处理的数据量逐渐扩大时,原有单机处理模式的处理效率瓶颈将逐渐显现。这时任务调度的分布式集群批处理能力就可以利用集群的协同能力来处理大批量的数据。并行处理。分布式批处理场景是基于业务的批处理能力。当实时业务量较大时,用户可以配合服务降级策略,为业务构建定时批量补偿任务,提高业务峰值处理能力,保证核心业务在业务高峰期的吞吐量。作为业务系统平台的架构设计者,如果能够将定时分布式批处理能力与具体业务有效结合,系统的整体业务处理能力和稳定性将得到充分发挥。以下是相关业务使用场景的抽象总结,供参考。在正常场景下,核心事务服务可能会通过RPC/MQ完成下游服务的调用处理。但是这种模式下,当业务量变大的时候,就会出现一些问题。RPC下游服务能力会影响核心服务吞吐量。依赖MQ时,需要保证消息的正常传递和消费者的正确处理。这些都会成为核心的业务处理能力。瓶颈。因此,在业务接受范围内,业务服务之间完全解耦的周期性批处理补偿的方式将大大提高处理效率,幂等可重复执行将提高下游服务的可靠性。同时,结合分布式批处理模型,可以批量加载和处理数据,减少DB交互压力。同时,在架构设计上,这种补偿模式可以与微服务服务降级相结合。快速访问SchedulerX以创建应用程序组。进入任务调度控制台后,选择“公网”区域。首先,进入“应用程序管理”->创建一个应用程序。建立对接关系的核心要素。SpringBoot项目引入SchedulerX在本地构建的SpringBoot项目中添加如下依赖,并在Properties中添加对应控制台创建的应用组配置信息,启动应用完成业务应用与任务的关系建立调度平台。com.aliyun.schedulerxschedulerx2-spring-boot-starter<版本>1.3.2#公有云公网环境spring.schedulerx2.namespace=aad167f6-8bee-41a7-ba41-*********spring.schedulerx2.endpoint=acm.aliyun.comspring.schedulerx2.groupId=qianxi.textspring.schedulerx2.appKey=lYgR6qq************其他说明完成以上步骤后,就可以为后续的应用创建和开发具体的业务定时任务了。后续使用请参考官方说明书!总结本文简要介绍了任务调度平台的资源定义、可视化管控能力、分布式批处理能力,并结合实际业务场景提供了一些基于SchedulerX能力的基础参考案例。希望通过以上内容,让大家能够轻松熟悉任务调度平台的接入和使用。对于现有用户,也可以根据自身团队特点,实现平台资源管控隔离,在产品业务量增长后,通过分布式批处理能力提升处理能力。效率。后续SchedulerX将不断完善可视化管控能力服务于企业级定时任务管理需求,平台管理和定时调度服务能力将逐步兼容市面上常见的开源组件客户端。我们也将继续结合实际场景一一分析讲解,敬请期待。原文链接本文为阿里云原创内容,未经许可不得转载。