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實現

相關文章
相關標籤/搜索