探秘阿里EDAS任务调度服务

近日,阿里云企业级分布式应用服务EDAS(https://www.aliyun.com/product/edas)上线分布式任务调度服务(低至1元/月,畅享任务调度服务,点击查看该活动),目前处于免费公测阶段。SchedulerX——是该服务在阿里内部的产品名字,顾名思义,比调度做的更多。随着公测的开启,阿里巴巴内部又一款核心中间件产品浮出水面。

SchedulerX是阿里巴巴集团中间件团队开发的一款高性能、分布式任务调度产品,在阿里内部有着广泛的使用,经过集团内上千个业务应用历经多年打磨而成。截止2017年8月,每天平稳运行集团内几十万个任务,完成每天几亿次的任务调度。在未来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,该版本的分布式任务调度将支持更多功能特性,用户值得期待。

-

时间: 2024-11-01 21:13:10

探秘阿里EDAS任务调度服务的相关文章

探秘阿里分布式任务调度服务SchedulerX

7月中上旬,阿里云企业级分布式应用服务EDAS低调上线分布式任务调度服务,目前处于免费公测阶段.SchedulerX--是该服务在阿里内部的产品名字,顾名思义,比调度做的更多.随着公测的开启,阿里巴巴内部又一款核心中间件产品浮出水面. SchedulerX是阿里巴巴集团中间件团队开发的一款高性能.分布式任务调度产品,在阿里内部有着广泛的使用,经过集团内上千个业务应用历经多年打磨而成.截止2016年6月,每天平稳运行集团内几十万个任务,完成每天几亿次的任务调度.在未来SchedulerX将支持更多

EDAS任务调度服务系列文章

<任务调度SchedulerX系列之什么是任务> <任务调度SchedulerX系列之什么是简单任务> <任务调度SchedulerX系列之任务调度类型全解析> <任务调度SchedulerX系列之QuartZ时间表达式语法与样例说明> <任务调度SchedulerX系列之任务触发方式大盘点> <任务调度SchedulerX系列之什么是简单任务多机版> <任务调度SchedulerX系列之任务是如何容灾的> <任务调

噱头还是实干 探秘阿里与用友战略之后

本文讲的是噱头还是实干 探秘阿里与用友战略之后[IT168 云计算]今天,任何一家企业要发展,必然面临互联网带来的挑战. 其中一个关键原因,就是传统IT架构下的烟囱式开发,使得信息资源.应用和数据形成一个个孤岛,难以进行联通.如何帮助企业更好地适应企业互联网时代的发展规律,有效降低创新成本,提升创新效率,成为2B市场的新课题. 于是乎,最近一年一个典型的生态合作变得越来越频繁.一如用友.SAP这样的传统ERP市场领头羊,如今纷纷与互联网巨头展开战略合作--传统企业要走出来,拥抱互联网,而互联网企

阿里短信服务API接入指南及示例

阿里短信服务,用淘宝账号打通三大运营商通信能力,以开放API方式向开发者提供短信服务.阿里短信服务具备3秒可达.99%到达率和超低资费的优势,并完美支撑了双11"2亿用户,6亿短信,8万并发"的挑战.本文将介绍阿里短信服务API的接入方法,并提供了多种编程语言的调用示例. 订购阿里短信服务 进入阿里云数据市场订购阿里短信服务.阿里短信服务是后付费商品,0元即可订购,成功发送短信后再付费.资费详见商品详情页面. 阿里短信服务接入指南 订购阿里短信服务后,就可以设置短信签名和短信模板,然后

Docker监控:基于阿里云容器服务构建自己的Docker监控框架

微服务架构通过将一个复杂系统分解成一系列独立开发.部署和运维的服务,提升了整个系统的敏捷性,可以灵活的响应业务和规模的变化.而Docker技术则将服务的部署和环境完全解耦,利用Docker的可移植性和敏捷性,快速交付分布式应用,从而大大提升了部署运维效率.然而大规模分布式微服务应用,也会给系统监控带来新的挑战. 除去分布式应用自身的复杂性,微服务倡导的快速迭代和动态部署都会加剧管控的复杂性.从技术角度来看,传统的监控系统大多是针对物理机或虚拟机设计的,通常使用静态的配置项来建立应用.环境与监控指

Docker常见故障排查指南 - 阿里云容器服务

对于Docker的初学者而言,当容器或应用出现了问题不知从何入手进行排查.为此,我们准备了一个简单指南来帮助阿里云容器服务的用户进行故障排查. 由于阿里云容器服务完全兼容Docker Swarm,并支持使用原生Docker Client/API,所以很多内容对于 Docker/Docker Swarm的用户也是适用的. Docker问题分类 我们可以把Docker在使用中的问题分为如下几类, 安装故障:Docker Engine 无法正常配置使用 应用故障:应用执行状态与预期不一致 容器故障:无

阿里云容器服务体验: 部署 ShellPays 条码支付整合服务平台 -- (一)系统概要与环境准备

此平台系统已在多种计算环境上进行部署,并且投入生产.本文所述方案是为了参与阿里云容器服务公测.如要投入实际使用,需要跟据实际计算环境调整相关参数,并且需要与支付服务机构签订收单协议,比如:支付宝钱包,微信支付等.还会产生阿里云的资源租用费. 系统概要 此平台系统在于帮助用户,快速.低成本.方便的统一接入多种条码支付收单业务.平台系统采用了多种技术手段的整合,比如:动静分离.OSGi.容器服务等.注:系统架构超过了当前所承载业务的需求 环境准备 1. 注册阿里云账号,并创建 AccessKey 创

三伏天——探秘阿里云千岛湖数据中心

采用湖水制冷的阿里浙江千岛湖数据中心在前几年早已启用,预计全年平均PUE(数据中心能源效率)1.3,无论是水冷本身,还是数据中心的设计和建设,以及其所采用的硬件和软件技术,各方面的实践都值得关注.今天我们就来看一看数据中心如何降温. 湖水冷却技术设计细节最关键 工业设计层面: ·90%时间不需要电制冷,深层湖水通过完全密闭的管道流经数据中心,帮助服务器降温,再流经2.5公里的青溪新城中轴溪,作为城市景观呈现,自然冷却后回到千岛湖: ·采用光伏太阳能.水力发电等可再生能源,服务器余热也被回收用作办

在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用(五)

服务智能路由 本文为阿里云容器服务Spring Cloud应用开发系列文章的第五篇,讨论如何利用Spring Cloud 对 Netflix Zuul支持,完成服务的职能路由功能. 一.在阿里云容器服务上开发Spring Cloud微服务应用 二.部署Spring Cloud应用示例 三.服务发现 四.服务间通信与集成 五.服务智能路由(本文) 六.集中配置管理 七.高可用和容错 八.监控和日志 九.服务的部署和发布策略 使用Zuul构建简单API Gateway 在手机端完成一个功能有可能需要