一些名词
联机:就意味着系统对外直接提供的交互,该类交互具有:
1)事务性——可回滚;
2)实时性——有生命周期,并有超时机制等,调用方需实时等待被调方的反馈,成功或失败皆有反馈;
3)并发性——同一类甚至同一个可同时被多个线程调用,相互间有锁处理机制。
批量:则意味着该交互相关的参数、系统状态已经锁定,系统需要进行的是某一类操作,该类操作具有统一性——使用相同的规则处理大量数据;串行性——并不是说批量交互过程中不能有并发,而是有固定的步骤,先做哪一步,再做哪一步,每一步都有对某些条件的依赖;可重复性——这个不是必须的,系统的批量程序在设计之初就已经考虑可重复运行。
批量框架的应用组成部分的说明:
外部应用:外部应用通过框架的接口发起联机批量交互。
手动配置批量:对于需要长期运行的周期任务,需要使用手动配置的方式定义。
任务持久化:手动配置的定时批量任务需要长期运行,因此作业本身需要被持久化。
服务访问层:提供发起批量交互的通讯接口。
定时器:完成定时任务的触发操作。
策略库:定义了一组与拆分和调度相关的策略参数,供应用选择和配置。
调度器实体:执行批量任务的拆分和发送的线程。
消息服务:框架提供的消息服务中间件,用于存储和转发任务。
应用服务器集群:任务的真正执行者。
例如:
场景描述
自动排课:文件上传至某一个地方并告知批量框架,或者直接传递交易数据给批量框架,批量框架接到任务后会立即启动拆分并将拆分的结果经由消息服务器发送给应用处理。
提交数据
排课结果数据以批量文件或Json格式的方式提供给批量框架。
返回数据
对于上传文件的形式消息中的请求数据以字符串(数组)的形式存在,对于Json的方式消息中的结果数据仍以Json的方式存在。