Spring Batch

Spring Batch

Spring Batch 是一個輕量級的、完善的批處理框架,旨在幫助企業建立健壯、高效的批處理套用。Spring Batch是Spring的一個子項目,使用Java語言並基於Spring框架為基礎開發,使得已經使用 Spring 框架的開發者或者企業更容易訪問和利用企業服務。 Spring Batch 提供了大量可重用的組件,包括了日誌、追蹤、事務、任務作業統計、任務重啟、跳過、重複、資源管理。對於大數據量和高性能的批處理任務,Spring Batch 同樣提供了高級功能和特性來支持,比如分區功能、遠程功能。總之,通過 Spring Batch 能夠支持簡單的、複雜的和大數據量的批處理作業。 Spring Batch 是一個批處理套用框架,不是調度框架,但需要和調度框架合作來構建完成的批處理任務。它只關注批處理任務相關的問題,如事務、並發、監控、執行等,並不提供相應的調度功能。如果需要使用調度框架,在商業軟體和開源軟體中已經有很多優秀的企業級調度框架(如 Quartz、Tivoli、Control-M、Cron 等)可以使用。

簡介

Spring Batch是一個批處理的框架,作為一個 Spring 組件,提供了通過使用 Spring 的 依賴注入(dependency injection) 來處理批處理的條件。

業務場景

· 周期性的提交批處理

· 把一個任務並行處理

· 訊息驅動套用分級處理

· 大規模並行批處理

· 手工或調度使任務失敗之後重新啟動

· 有依賴步驟的順序執行(使用工作流驅動擴展)

· 處理時跳過部分記錄

· 成批事務:為小批量的或有的存儲過程/腳本的場景使用

技術目標

· 開發者使用Spring編程模型,編寫具體的業務邏輯。SpringBatch框架提供基礎服務。

· 清楚的區分基礎服務、執行環境和套用的關係

· 提供基本的執行服務接口。所有的項目都可以去實現這些接口

· 提供基本的執行服務的預設實現。可以直接拿來使用。

· 可以在框架各層上方便的配置、定製已經擴展

· 核心服務可以在基礎服務不受任何影響的情況下輕鬆的替換或擴展。

· 提供一個基本的部署模型。框架的Jar包完全獨立於套用

架構圖

Spring Batch使用三層架構,三層分別為套用、核心和基礎服務。套用層是用戶寫的批處理任務。核心層包含執行和控制任務必須的核心類。如JobLauncher、Job和Step的實現。套用和核心層基於一層公用的基礎服務。基礎服務包括通用的Reader,Writers,RetryTemplate。

優勢

Spring Batch 是 SpringSource 和 Accenture(埃森哲)合作開發的。Accenture 在批處理架構上有著豐富的工業級別的經驗,貢獻了之前專用的批處理體系框架(這些框架歷經數十年研發和使用,為Spring Batch提供了大量的參考經驗);SpringSource則有著深刻的技術認知和Spring框架編程模型。

Spring Batch 框架通過提供豐富的即開即用的組件、和高可靠性、高擴展性的能力,使得開發批處理套用的人員專注於業務的處理,提升批處理套用的開發效率,通過 Spring Batch 可以快速的構建出輕量級的健壯的並行處理套用。

相關詞條

相關搜尋

熱門詞條

聯絡我們