spring batch

野性酷女 2022-06-10 11:58 247阅读 0赞
  1. springBatch一个轻量级,全面的批处理框架,旨在开发强大的批处理应用程序,对于企业系统的日常运营至关重要。提供可重复使用的功能,这些功能在处理大量记录

(包括记录/跟踪,事务管理,作业处理统计,作业重新启动,跳过和资源管理)方面至关重要。它还提供更先进的技术服务和功能,可通过优化和分区技术实现极高批量和高性能批处理作业。 简单和复杂的大批量作业可以以高度可扩展的方式利用框架来处理大量信息。

  1. 特征

交易管理
基于块的处理
声明式I / O
启动/停止/重新启动
重试/跳过
基于Web的管理界面(Spring Batch Admin)

业务方案:

1、批处理定期提交。

2、并行批处理:并行处理工作。

3、企业消息驱动处理

4、大规模的并行处理

5、手动或是有计划的重启

6、局部处理:跳过记录(如:回滚)

  1. 技术目标:

1、利用Spring编程模型:使程序员专注于业务处理,让Spring框架管理流程。

2、明确分离批处理的执行环境和应用。

3、提供核心的,共通的接口。

4、提供开箱即用(out of the box)的简单的默认的核心执行接口。

5、提供Spring框架中配置、自定义、和扩展服务。

6、所有存在的核心服务可以很容的被替换和扩展,不影响基础层。

7、提供一个简单的部署模式,利用Maven构建独立的Jar文件。

  1. Spring Batch的结构:
  2. ![2011102114313968.jpg][]
  3. ![Center][]
  4. ![2011102114313968.jpg][]
  5. 这种分层结构有三个重要的组成部分:应用层、核心层、基础架构层。应用层包含所有的批处理作业,通过Spring框架管理程序员自定义的代码。核心层包含了Batch启动和控制所需要的核心类,如:JobLauncherJobstep等。应用层和核心层建立在基础构架层之上,基础构架层提供共通的读(ItemReader)、写(ItemWriter)、和服务(如RetryTemplate:重试模块。可以被应用层和核心层使用)。

Spring Batch流程介绍:

上图描绘了Spring Batch的执行过程。说明如下:

  1. 每个Batch都会包含一个JobJob就像一个容器,这个容器里装了若干StepBatch中实际干活的也就是这些Step,至于Step干什么活,无外乎读取数据,处理数据,然后将这些数据存储起来(ItemReader用来读取数据,ItemProcessor用来处理数据,ItemWriter用来写数据) JobLauncher用来启动JobJobRepository是上述处理提供的一种持久化机制,它为JobLauncherJob,和Step实例提供CRUD操作。
  2. 外部控制器调用JobLauncher启动一个JobJob调用自己的Step去实现对数据的操作,Step处理完成后,再将处理结果一步步返回给上一层,这就是Batch处理实现的一个简单流程。

Step执行过程:

2011102518020935.png

  1. DB或是文件中取出数据的时候,read()操作每次只读取一条记录,之后将读取的这条数据传递给processor(item)处理,框架将重复做这两步操作,直到读取记录的件数达到batch配置信息中”commin-interval”设定值的时候,就会调用一次write操作。然后再重复上图的处理,直到处理完所有的数据。当这个Step的工作完成以后,或是跳到其他Step,或是结束处理。

springBoot+springBatch 例子:http://download.csdn.net/download/sdmxdzb/9940276

发表评论

表情:
评论列表 (有 0 条评论,247人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring Batch 背景

    在开源项目及其相关社区把大部分注意力集中在基于 web 和 SOA 基于消息机制的框架中时,基于 Java 的批处理框架却无人问津,尽管在企业 T 环境中一直都有这种批处理的需

    相关 spring batch

            springBatch一个轻量级,全面的批处理框架,旨在开发强大的批处理应用程序,对于企业系统的日常运营至关重要。提供可重复使用的功能,这些功能在处理大量记录

    相关 Spring Boot整合Spring Batch

    引言 >   Spring Batch是处理大量数据操作的一个框架,主要用来读取大量数据,然后进行一定的处理后输出指定的形式。比如我们可以将csv文件中的数据(数据量几百