引言
总述
本系列文章旨在通过示例搭建以及特性介绍,详细讲述如何利用 Spring Batch 开发企业批处理应用。本系列文章共分为三部分,第一部分初步介绍了批处理以及 Spring Batch 的相关概念,同时搭建了一个简单的基于 Spring Batch 的批处理应用。第二部分介绍了 Step Flow 以及并发支持。第三部分则主要介绍了 Spring Batch 对任务监控的支持。下面让我们进入第一部分内容。
什么是批处理
在现代企业应用当中,面对复杂的业务以及海量的数据,除了通过庞杂的人机交互界面进行各种处理外,还有一类工作,不需要人工干预,只需要定期读入大批量数据,然后完成相应业务处理并进行归档。这类工作即为“批处理”。
从上面的描述可以看出,批处理应用有如下几个特点:
- 数据量大,少则百万,多则上亿的数量级。
- 不需要人工干预,由系统根据配置自动完成。
- 与时间相关,如每天执行一次或每月执行一次。
同时,批处理应用又明显分为三个环节:
- 读数据,数据可能来自文件、数据库或消息队列等
- 数据处理,如电信支撑系统的计费处理
- 写数据,将输出结果写入文件、数据库或消息队列等
因此,从系统架构上,应重点考虑批处理应用的事务粒度、日志监控、执行、资源管理(尤其存在并发的情况下)。从系统设计上,应重点考虑数据读写与业务处理的解耦,提高复用性以及可测试性。