1.简介
Spring Batch 是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使的已经使用 Spring 框架的开发者或者企业更容易访问和利用企业服务。
Spring Batch 提供了大量可重用的组件,包括了日志、追踪、事务、任务作业统计、任务重启、跳过、重复、资源管理。对于大数据量和高性能的批处理任务,Spring Batch 同样提供了高级功能和特性来支持,比如分区功能、远程功能。总之,通过 Spring Batch 能够支持简单的、复杂的和大数据量的批处理作业。
Spring Batch 是一个批处理应用框架,不是调度框架,但需要和调度框架合作来构建完成的批处理任务。它只关注批处理任务相关的问题,如事务、并发、监控、执行等,并不提供相应的调度功能。如果需要使用调用框架,在商业软件和开源软件中已经有很多优秀的企业级调度框架(如Quartz、Tivoli、Control-M、Cron 等)可以使用。
Spring Batch 提供了大量可重用的组件,包括了日志、追踪、事务、任务作业统计、任务重启、跳过、重复、资源管理。对于大数据量和高性能的批处理任务,Spring Batch 同样提供了高级功能和特性来支持,比如分区功能、远程功能。总之,通过 Spring Batch 能够支持简单的、复杂的和大数据量的批处理作业。
Spring Batch 是一个批处理应用框架,不是调度框架,但需要和调度框架合作来构建完成的批处理任务。它只关注批处理任务相关的问题,如事务、并发、监控、执行等,并不提供相应的调度功能。如果需要使用调用框架,在商业软件和开源软件中已经有很多优秀的企业级调度框架(如Quartz、Tivoli、Control-M、Cron 等)可以使用。
2.应用场景
周期性的提交批处理
把一个任务并行处理
消息驱动应用分级处理
大规模并行批处理
手工或调度使任务失败之后重新启动
有依赖步骤的顺序执行(使用工作流驱动扩展)
处理时跳过部分记录
成批事务:为小批量的或有的存储过程/脚本的场景使用
消息驱动应用分级处理
大规模并行批处理
手工或调度使任务失败之后重新启动
有依赖步骤的顺序执行(使用工作流驱动扩展)
处理时跳过部分记录
成批事务:为小批量的或有的存储过程/脚本的场景使用
3. SpringBoot结合
本文中的例子是没有和SpringBoot结合一起来使用,需要通过XML配置定义job,Step。
官方文档中是结合spring boot使用,如果项目中使用了spring boot的同学不需要像本文中一样还是使用xml配置定义job、step等。
4.spring batch 基本组成:Job、setp、ItemReader、ItemProcessor、ItemWriter、Partitioner
・ org.springframework.batch.core.Job:batch Job,同时也是执行Job的入口;
・ org.springframework.batch.core.Step:job中的step,提供了执行Step的能力;
・ org.springframework.batch.item.ItemReader<T>:读数据(包括文件、数据库等)提供了读取数据的能力;
・org.springframework.batch.item.ItemProcessor<T>:业务处理(自定义业务)我们可以通过它应用业务逻辑到每一条要处理的数据;
・ org.springframework.batch.item.ItemWriter<T>:写数据(包括文件、数据库等)提供了写数据的能力;
Job、setp、ItemReader、ItemProcessor、ItemWriter、Partitioner
・ org.springframework.batch.core.partition.support.Partitioner:参数处理、传递,包括任务中传递的参数
・ org.springframework.batch.core.Step:job中的step,提供了执行Step的能力;
・ org.springframework.batch.item.ItemReader<T>:读数据(包括文件、数据库等)提供了读取数据的能力;
・org.springframework.batch.item.ItemProcessor<T>:业务处理(自定义业务)我们可以通过它应用业务逻辑到每一条要处理的数据;
・ org.springframework.batch.item.ItemWriter<T>:写数据(包括文件、数据库等)提供了写数据的能力;
Job、setp、ItemReader、ItemProcessor、ItemWriter、Partitioner
・ org.springframework.batch.core.partition.support.Partitioner:参数处理、传递,包括任务中传递的参数
5.