SchedulerX是阿里巴巴集团中间件团队开拓的一款高性能、分布式任务调度产品,在阿里内部有着广泛的利用,经由集团内上千个业务运用历经多年打磨而成。截止2016年6月,每天平稳运行集团内几十万个任务,完整天天几亿次的任务调度。在未来SchedulerX将支持更多特性以知足集团内外不断增长的用户需求。
SchedulerX 1.0:让任务分布式起来
在2011年之前,阿里中间件的TTM供应定时任务触发做事,随着淘宝业务不断发展壮大TTM大略的触发功能越来越不知足业务不断增长的需求,在很多场景下TTM无法为用户办理问题。比如用户希望能将一个耗时很长的定时任务进行拆解,然后将拆解后的任务分片分发到多台机器去并行处理,这样就能大大减少任务实行的韶光。公司内部的一些其他分布式任务调度办理方案,虽然能知足需求但是易用性较差,文档缺失落严重,而且没人掩护,常常由于重度依赖ZooKeeper导致些严重问题,想要做到大规模的推广比较困难。于是阿里中间件开拓了TTD,也便是SchedulerX的前身。

SchedulerX1.0 (TTD)供应了自主运维管理后台,让用户能通过页面来配置、修正和管理定时任务。SchedulerX1.0还能管理任务实行的生命周期,从每次任务实行开始一贯到任务实行结束都有记录,用户能看到每次任务实行的开始和结束韶光以及能看到实行成功或者失落败,SchedulerX1.0还会为用户保留过去的实行记录,用户可以查看定时任务历史实行记录。SchedulerX1.0办理了用户很多痛点,比如以前利用TTM要修正韶光表达式的话须要修正代码配置然后再重新发布运用,而SchedulerX1.0则供应了统一的运维管理后台,用户只须要在页面上修正韶光表达式即可,不须要重新发布跑定时任务的业务运用。
此外,SchedulerX1.0能把一个实行耗时很长的定时任务拆分成多个子任务分片然后分发到多台机器去并行实行这样就大大减少了定时任务实行的韶光。比如集团内很多历史数据迁移的场景,这样的场景每每是每天实行一次,而由于每次迁移的数据量巨大如果单台机器去迁移的话是没办法在一天之内完成迁移任务的,以是必须将这样一个迁移任务拆分成多个子任务分片,然后用多台机器去实行不同的子任务分片,这样就能大大缩短任务实行的韶光知足业务需求。更主要的是SchedulerX1.0的编程模型和用户接口都非常大略,用户只须要实现相应的接口即可。
SchedulerX 2.0:完善的任务调度体系
随着集团业务连续发展壮大以及SchedulerX1.0推广运营的过程中网络到的用户反馈和需求,我们决定扩展SchedulerX1.0并开拓下一个版本SchedulerX2.0(开拓代号为:DTS)。SchedulerX2.0(DTS)进一步提升用户体验,除了优化编程模型,减少用户配置和程序接口之外,同时还新增了多项功能特性,以知足集团内不断增长的业务需求。
SchedulerX2.0(DTS)支持七种功能特性。
大略job单机版是每次随机选择一台机器只实行任务,这种场景用的最多便是一样平常情形下任务只运行在一台机器实行,但是为了防止单点问题还的办理多机备份的问题,当一台机器宕机的时候可以自动切换到其他正常机器去实行。
大略job广播版则是每次选择所有机器同时触发实行,比如须要定时更新本地内存的场景,这样就须要每台机器同时刷新内存。
并行打算job便是将一个耗时很长的大任务拆分成多个小的子任务然后分发到多台机器去并行实行。
图示打算(任务依赖),这种特性每每用于有业务数据依赖的多个任务之间按照严格先后顺序实行的场景。阿里内部有很多这种场景,两个或者多个任务之间按照某种业务逻辑顺序去实行,比如两个任务A,B个中A实行结束之后B才能开始实行。
脚本Job便是只shell,php,python等定时实行的脚本任务,比如集团技能保障部,虾米音乐等部门有大量须要定时实行的shell,php,python等脚本。用户只须要在SchedulerX2.0(DTS)管理后台配置上要定时实行的shell,php,python等命令即可,用户不须要额外写一行代码。
SchedulerX2.0(DTS)的管理运维掌握台供应任务配置管理,以及历史实行记录查询,还有完善的监控报警功能。任务没有准点实行能给用户发送报警,任务实行超过预期的韶光也能给用户发送报警,乃至任务实行失落败了都能给用户发送短信报警。
SchedulerX2.0(DTS)还支持基于SchedulerX2.0的二次开拓,用户可以通过SDK里的api来创建,修正,删除任务。在阿里内部有很多业务方在SchedulerX2.0的根本上构建他们自己的任务调度平台。
SchedulerX2.0(DTS)还支持超大规模定时触发器,用户可以通过api创建千亿量级的一次性定时触发器,比如每条交易订单创建的时候就在SchedulerX2.0创建一个定时触发器,用户设置这个触发器的触发韶光,到了每个触发器触发韶光就会有一个事宜通深交易系统去提醒用户确认收货超时。
SchedulerX 3.0:在路上
据悉,目前阿里中间件正在开拓SchedulerX3.0,该版本的分布式任务调度将支持更多功能特性,用户值得期待。
更多深度技能内容,请关注云栖社区微信"大众年夜众号:yunqiinsight。