「」一文搞懂大数据批量处理框架Spring Batch的完美解析方案是什么( 二 )
文章图片
文章图片
但最为关键的一点是:JSR-352规范大量借鉴了Spring Batch框架的设计思路,从上图中的核心模型和概念中可以看出究竟 , 核心的概念模型完全一致 。
通过Spring Batch框架可以构建出轻量级的健壮的并行处理应用,支持事务、并发、流程、监控、纵向和横向扩展,提供统一的接口管理和任务管理 。
文章图片
文章图片
框架提供了诸如以下的核心能力 , 让大家更关注在业务处理上 。更是提供了如下的丰富能力:
明确分离批处理的执行环境和应用
将通用核心的服务以接口形式提供
提供“开箱即用” 的简单的默认的核心执行接口
提供Spring框架中配置、自定义、和扩展服务
所有默认实现的核心服务能够容易的被扩展与替换 , 不会影响基础层
提供一个简单的部署模式 , 使用Maven进行编译
批处理关键领域模型及关键架构
先来个Hello World示例 , 一个典型的批处理作业 。
文章图片
文章图片
典型的一个作业分为3部分:作业读、作业处理、作业写 , 也是典型的三步式架构 。整个批处理框架基本上围绕Read、Process、Writer来处理 。除此之外 , 框架提供了作业调度器、作业仓库(用以存放Job的元数据信息 , 支持内存、DB两种模式) 。
完整的领域概念模型参加下图:
文章图片
文章图片
Job Launcher(作业调度器)是Spring Batch框架基础设施层提供的运行Job的能力 。通过给定的Job名称和作Job Parameters , 可以通过Job Launcher执行Job 。
通过Job Launcher可以在Java程序中调用批处理任务 , 也可以在通过命令行或者其它框架(如定时调度框架Quartz)中调用批处理任务 。
Job Repository来存储Job执行期的元数据(这里的元数据是指Job Instance、Job Execution、Job Parameters、Step Execution、Execution Context等数据) , 并提供两种默认实现 。
一种是存放在内存中;另一种将元数据存放在数据库中 。通过将元数据存放在数据库中 , 可以随时监控批处理Job的执行状态 。Job执行结果是成功还是失败 , 并且使得在Job失败的情况下重新启动Job成为可能 。Step表示作业中的一个完整步骤 , 一个Job可以有一个或者多个Step组成 。
批处理框架运行期的模型也非常简单:
文章图片
文章图片
Job Instance(作业实例)是一个运行期的概念 , Job每执行一次都会涉及到一个Job Instance 。
Job Instance来源可能有两种:一种是根据设置的Job Parameters从Job Repository(作业仓库)中获取一个;如果根据Job Parameters从Job Repository没有获取Job Instance , 则新创建一个新的Job Instance 。
Job Execution表示Job执行的句柄 , 一次Job的执行可能成功也可能失败 。只有Job执行成功后 , 对应的Job Instance才会被完成 。因此在Job执行失败的情况下 , 会有一个Job Instance对应多个Job Execution的场景发生 。
总结下批处理的典型概念模型 , 其设计非常精简的十个概念 , 完整支撑了整个框架 。
推荐阅读
- |一文速览五月份隐私币重大进展:Monero、Zcash、Grin、Beam
- 人群中国科学家通过古人基因组数据探寻中国文明源流
- 联想|联想个人云存储Mac版上线 苹果电脑用户数据备份更便捷
- 信息史上最全SpaceX火箭数据开源,核心、组员舱、起落架、发射信息全都有!
- 云创|真旺(徐州)大数据总经理李华领一行到访云创
- 主题马蜂窝大数据:大人小孩一起过“六一”,主题公园最受欢迎
- |6大数据可视化应用设计规范
- 链上|链上数据5月扫描:10000美元阻力下的链上百态
- 腾讯科技|一文读懂网易招股书亮点:发售价不高于126港元 研发人员超1万名
- 孜然实验室|DNA存储器突破了理论极限,一部手机装下全世界的数据
