文档介绍:工程师/胡顺强 2013-01-23
目录
一,引言 2
1,什么是批处理 2
2,什么是 Spring Batch 2
二,Spring Batch结构 3
1,Spring Batch体系结构 4
2,Spring Batch主要对象 5
三,Spring Batch流程介绍 5
四,Spring Batch之Step执行过程介绍 6
五,Spring Batch应用 6
1,简单应用 7
Ø 构建应用 7
Ø 对象定义 7
Ø 读写及处理接口 8
Ø 任务定义 10
Ø 任务执行 11
Ø 任务重试 13
Ø 运行时管理 14
2,高级应用 16
Ø Step Flow介绍 16
Ø 批量操作数据库介绍 16
Ø Job多个Step的执行 17
Ø 条件流程和流程决策 20
Ø 并发处理 22
3,监控 27
六,总结 29
,引言
1,什么是批处理
在现代企业应用当中,面对复杂的业务以及海量的数据,除了通过庞杂的人机交互界面进行各种处理外,还有一类工作,不需要人工干预,只需要定期读入大批量数据,然后完成相应业务处理并进行归档。这类工作即为“批处理”。
从上面的描述可以看出,批处理应用有如下几个特点:
数据量大,少则百万,多则上亿的数量级。
不需要人工干预,由系统根据配置自动完成。
与时间相关,如每天执行一次或每月执行一次。
同时,批处理应用又明显分为三个环节:
读数据,数据可能来自文件、数据库或消息队列等
数据处理,如电信支撑系统的计费处理
写数据,将输出结果写入文件、数据库或消息队列等
因此,从系统架构上,应重点考虑批处理应用的事务粒度、日志监控、执行、资源管理(尤其存在并发的情况下)。从系统设计上,应重点考虑数据读写与业务处理的解耦,提高复用性以及可测试性。
2,什么是 Spring Batch
enture合作开发了Spring Batch
Accenture在批处理架构上有着丰富的工业级别的经验,SpringSource则有着深刻的技术认知和Spring框架编程模型
Accenture贡献了之前专用的批处理体系框架,这些框架历经数十年研发和使用,为Spring Batch提供了大量的参考经验
Spring Batch是一款优秀的、开源的大数据量并行处理框架。通过Spring Batch可以构建出轻量级的健壮的并行处理应用,支持事务、并发、流程、监控,提供统一的接口管理和任务管理。
另外Spring Batch 是一款批处理应用框架,不是调度框架。它只关注批处理任务相关的问题,如事务、并发、监控、执行等,并不提供相应的调度功能。因此,如果我们希望批处理任务定期执行,可结合 Quartz 等成熟的调度框架实现
上图寓意:火车通行处理,在很多火车都要通过该站台的时候,我们无需耗费大量的人力资源,人工协调处理。
二,Spring Batch结构
1,Spring Batch体系结构
这种分层结构有三个重要的组成部分:应用层、核心层、基础架构层。应用层包含所有的批处理作业,通过Spring框架管理程序员自定义的代码。核心层包含了Batch启动和控制所需要的核心类,如:JobLauncher、Job和step等。应用层和核心层建立在基础构架层之上,基础