文章目录
1.简介
产品的用户功能重点需要把握用户实际的任务开发运维需求,合理的规划设计产品功能,在使用和运维上便于用户操作,降低用户的开发使用成本。简单的说就是主要保证用户任务、任务流等关键元数据的配置信息的准确性,以及任务状态的查询和干预能力,技术上实现不存在难点,在此不再详细说明。
任务执行模块侧重于任务被领取后,如何根据任务类型选择不同的执行器(Executer)提交任务执行,并将任务的执行状态及时准确的返回,由任务调度服务根据返回状态做相应的下一步处理,除此以外还涉及到任务资源加载、任务配置解析与转换、自身健康状态检查与汇报、worker 进程与任务子进程通信、任务隔离、对外接口服务等,这块将在后面一节再跟大家详细分享。
任务运维模块主要关注平台的自身稳定性、健壮性等各个指标的监控与预警、平台任务执行异常的监控、任务运行诊断分析、动态扩缩容和应急降级等方面,涉及到的内容也很多,后续章节会陆续跟大家分享。
今天我们重点详细阐述大数据离线任务调度开发平台的核心模块—任务调度模块的架构设计以及开发实践过程中的关键功能点。
2.设计目标与主要功能
调度模块的核心目标要保证任务能够按照用户配置的调度时间、依赖关系准实时调度和执行,同时也允许用户根据实际需要随时启动和停止任务调度,调整任务执行计划。所谓准时实调度,指的是调度模块会按照各个上线的任务流的调度时间生成调度执行计划,当触发时间到了,平台会按照调度执行计划精确的生成任务流实例和任务实例。但是在任务执行上,并不保证准实时的分配机器执行。实际上平台以整体资源使用情况为最高原则,并按照一定的限流策略控制任务的