Spring-Batch批处理框架

官方地址:http://spring.io/guides/gs/batch-processing/html

 Spring Batch是一个轻量级的,彻底面向Spring的批处理框架,能够应用于企业级大量的数据处理系统。Spring Batch以POJO和你们熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch能够提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,做业处理统计工做从新启动、跳过,和资源管理等重要功能。程序员

业务方案:spring

  1. 批处理按期提交。
  2. 并行批处理:并行处理工做。
  3. 企业消息驱动处理
  4. 大规模的并行处理
  5. 手动或是有计划的重启
  6. 局部处理:跳过记录(如:回滚)

技术目标:编程

  1. 利用Spring编程模型:使程序员专一于业务处理,让Spring框架管理流程。
  2. 明确分离批处理的执行环境和应用。
  3. 提供核心的,共通的接口。
  4. 提供开箱即用(out of the box)的简单的默认的核心执行接口。
  5. 提供Spring框架中配置、自定义、和扩展服务。
  6. 全部存在的核心服务能够很容的被替换和扩展,不影响基础层。
  7. 提供一个简单的部署模式,利用Maven构建独立的Jar文件。

 Spring Batch的结构:架构

             Spring Batch入门教程及其框架搭建

    这 种分层结构有三个重要的组成部分:应用层、核心层、基础架构层。应用层包含全部的批处理做业,经过Spring框架管理程序员自定义的代码。核心层包含了 Batch启动和控制所须要的核心类,如:JobLauncher、Job和step等。应用层和核心层创建在基础构架层之上,基础构架层提供共通的读 (ItemReader)、写(ItemWriter)、和服务(如RetryTemplate:重试模块。能够被应用层和核心层使用)。框架

Spring Batch 框架流程简单介绍ide

Spring Batch流程介绍:ui

Spring Batch入门教程及其框架搭建

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

    每一个Batch都会包含一个Job。Job就像一个容器,这个容器里装了若干Step,Batch中实际干活的也就是这些Step,至于Step干什么 活,无外乎读取数据,处理数据,而后将这些数据存储起来(ItemReader用来读取数据,ItemProcessor用来处理数 据,ItemWriter用来写数据) 。JobLauncher用来启动Job,JobRepository是上述处理提供的一种持久化机制,它为JobLauncher,Job,和Step 实例提供CRUD操做。.net

    外部控制器调用JobLauncher启动一个Job,Job调用本身的Step去实现对数据的操做,Step处理完成后,再将处理结果一步步返回给上一层,这就是Batch处理实现的一个简单流程。 

Step执行过程:

Spring Batch入门教程及其框架搭建

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

      这就是一个SpringBatch的基本工做流程。

   将经过“Hello World”实例,与你们共同探讨SpringBatch的具体应用和实现。

 工程结构以下图:

Spring Batch入门教程及其框架搭建

执行结果以下:

Spring Batch入门教程及其框架搭建

原文:Spring Batch 简介

Spring Batch_官网DEMO实现

相关文章
相关标签/搜索