springbatch 调研

springbatch 是一个轻量级、全面的批处理框架,旨在支持开发对企业系统日常操作至关重要的健壮批处理应用程序。
官网上有一个简短生动的介绍:getting started
SpringBatch提供了可重用的功能,这些功能在处理大量记录时非常重要,包括日志/跟踪、事务管理、作业处理统计、作业重启、跳过和资源管理。它还提供了更高级的技术服务和功能,通过优化和分区技术,可以实现超大容量和高性能的批处理作业。简单和复杂的大容量批处理作业都可以以高度可扩展的方式利用框架来处理大量信息。

在Spring批处理中,一个作业由许多步骤组成,每个步骤由一个读处理-写任务或单个操作任务(tasklet)组成。

对于“READ-PROCESS-WRITE”流程,它意味着从资源(csv、xml或数据库)中“读取”数据,“处理”数据并“写入”其他资源(csv、xml和数据库)。例如,一个步骤可以从CSV文件中读取数据,对其进行处理并将其写入数据库。SpringBatch提供了许多定制类来读/写CSV、XML和数据库。

对于“单个”操作任务(tasklet),它意味着只执行单个任务,比如在开始或完成某个步骤之后或之前清理资源。

下图清楚地描述了SpringBatch主类和基础结构。
springbatch 调研_第1张图片
ItermReader
It is the entity of a step (of a batch process) which reads data. An ItemReader reads one item a time. Spring Batch provides an Interface ItemReader. All the readers implement this interface.

Reader Purpose
FlatFIleItemReader To read data from flat files
StaxEventItemReader To read data from XML files
StoredProcedureItemReader To read data from the stored procedures of a database
JDBCPagingItemReader To read data from relational databases database
MongoItemReader To read data from MongoDB.
Neo4jItemReader To read data from Neo4jItemReader

ItemProcessor
An ItemProcessor is used to process the data. When the given item is not valid it returns null, else it processes the given item and returns the processed result. The interface ItemProcessor represents the processor.

ItermWriter
Writer Purpose
FlatFIleItemWriter To write data into flat files
StaxEventItemWriter To write data into XML files
StoredProcedureItemWriter To write data into the stored procedures of a database
JDBCPagingItemWriter To write data into relational databases database
MongoItemWriter To write data into MongoDB
Neo4jItemWriter To write data into Neo4j

如何跑任务
一般而言,在管理端会提供入口给用户自定义job的运行方式,例如cron表达式,
特别的参数:
commit interval 定义了一次批处理的数据量
本地跑的话直接启动springbatchApplication就可以了

任务失败数据的回滚

你可能感兴趣的:(框架,spring)