1、分布式调度组件:余额宝大白组件叶恺蚂蚁金服财富线技术专家余额宝超大规模基金文件处理一、组件背景二、组件功能三、技术实现四、未来展望目 录content一、组件背景 余额宝现有几十种任务类型,每日生成上百个文件,多种批量任务,几十种核对任务。现有分布式调度中心不区分资源类别,无法合理利用资源基于单元化部署上的分布式环境无法充分利用机器资源。多种文件格式 任务类别可简单分为导入、导出、导入且导出类别大量类似的文件导入、导出任务,但文件格式多样,基础流程复用性低。多种存储类型,且需支持异构存储容灾切换文件存储异构,且有异构存储容灾需求。文件生成顺序存在依赖。任务之间业务依赖关系,无统一通用解决方案。
2、二、组件功能任务调度(控制单元)任务创建调度消息任务分片分片执行任务合并任务记录任务分片00任务分片01任务分片02分片文件00分片文件01分片文件02大文件分片文件03调度消息调度消息调度消息任务执行(执行单元)任务调度(控制单元)调度消息(本zone)调度消息(跨zone)分片状态(跨zone)组件功能:大文件导出思路:并行生成小文件后,合并成大文件;任务调度,任务执行独立组件功能:自适应调度思路:高时效任务单独线程池,忙时集群内单机自发调度,自发调度开关自适应任务记录任务记录任务记录任务记录任务记录任务记录定时触发扫描(1次/m)自触发扫描(0.2次/s)公有线程池专有线程池一般任务执行
3、线程一般任务执行线程一般任务执行线程紧急任务执行线程紧急任务执行线程紧急任务执行线程一般任务执行线程数可调队列数可调紧急任务执行线程、队列数可调动态创建线程池自扫描开关:自触发根据系统繁忙程度自行开关待处理任务任务扫描:定时触发(慢)自触发(快)任务扫描数自适应组件功能:任务配置思路:建立任务模板,配置业务参数,建立任务依赖任务模板I业务参数1业务参数21类任务1类任务1类任务任务实例1任务实例2任务模板II任务实例3业务参数22类任务2类任务3类任务依赖配置依赖表达式:paramName:depParamName(value|depValue1,depValue2);依赖执行:多对一、一对多
4、多对多、一对一依赖执行使用场景:文件操作及存储思路:构造文件模板语法、封装文件操作接口,屏蔽底层存储差异FileTemplatehead:caption|lable|type,body:caption|label|type,tail:caption|label|type,summaryColumnPairs:caption1|caption2FileProtocolDE(天弘)FUND(标准基金)FileStorageNAS(网络存储)OSS(分布式对象存储)FileConfigFileWriterFUND:OSSFileReaderFUND:OSSFileWriterDE:OSSFileRe
5、aderDE:OSSNASOSSDEFileWriterFUND:NASFileReaderFUND:NASFileWriterDE:NASFileReaderDE:NASFUNDFileMergerFUND:NAS/OSSFileSplitorFUND:NAS/OSSFileMergerDE:NAS/OSSFileSplitorDE:NAS/OSS文件工具三、技术实现原理运维文件任务管理定时调度实时调度导入文件任务简单导入分库导入分块导入文件夹导入导出文件任务分库导出混合文件任务文件夹导入多文件导出文件夹导入单文件导出单文件导入多文件导出实时任务管理掉单任务流水捞取流水执行日志业务日志监控日
6、志DRM调度运维文件参数应急运维文件读写文件协议天弘格式Ib格式基金格式文件存储NASOSS文件读写文件头读文件分割文件合并周期管理RG调度任务管理调度对象任务任务分片任务锁调度控制本地调度调度消息调度分发异常控制任务重试R状态保持锁恢复容量控制线程池任务调度量分片调度量容量管理接入适配余额宝大白组件架构分布式调度总控调度中心 全局控制资源利用 调度频率 容灾指令 任务拆分 全局管控 自适应调度调度执行机房1服务器服务器服务器服务器服务器服务器服务器服务器数据库数据库调度执行机房2服务器服务器服务器服务器服务器服务