Spring Batch介紹
? 概述
Spring Batch 是一個輕量級的、完善的批處理框架,旨在幫助企業(yè)建立健壯、高效的批處理應(yīng)用。Spring Batch是Spring的一個子項目,使用Java語言并基于Spring框架為基礎(chǔ)開發(fā),使得已經(jīng)使用 Spring 框架的開發(fā)者或者企業(yè)更容易訪問和利用企業(yè)服務(wù)。
Spring Batch 提供了大量可重用的組件,包括了日志、追蹤、事務(wù)、任務(wù)作業(yè)統(tǒng)計、任務(wù)重啟、跳過、重復(fù)、資源管理。對于大數(shù)據(jù)量和高性能的批處理任務(wù),Spring Batch 同樣提供了高級功能和特性來支持,比如分區(qū)功能、遠(yuǎn)程功能??傊?通過 Spring Batch 能夠支持簡單的、復(fù)雜的和大數(shù)據(jù)量的批處理作業(yè)。
Spring Batch 是一個批處理應(yīng)用框架,不是調(diào)度框架,但需要和調(diào)度框架合作來構(gòu)建完成的批處理任務(wù)。它只關(guān)注批處理任務(wù)相關(guān)的問題,如事務(wù)、并發(fā)、監(jiān)控、執(zhí)行等,并不提供相應(yīng)的調(diào)度功能。如果需要使用調(diào)度框架,在商業(yè)軟件和開源軟件中已經(jīng)有很多優(yōu)秀的企業(yè)級調(diào)度框架(如 Quartz、Tivoli、Control-M、Cron 等)可以使用。
? 場景
? 周期性的提交批處理
? 把一個任務(wù)并行處理
? 消息驅(qū)動應(yīng)用分級處理
? 大規(guī)模并行批處理
? 手工或調(diào)度使任務(wù)失敗之后重新啟動
? 有依賴步驟的順序執(zhí)行(使用工作流驅(qū)動擴(kuò)展)
? 處理時跳過部分記錄
? 成批事務(wù):為小批量的或有的存儲過程/腳本的場景使用
目前累計服務(wù)客戶上1000家,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗。以網(wǎng)站設(shè)計水平和技術(shù)實力,樹立企業(yè)形象,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)站策劃、網(wǎng)頁設(shè)計、網(wǎng)絡(luò)營銷、VI設(shè)計、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)始終以務(wù)實、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對領(lǐng)先技術(shù)的掌握、對創(chuàng)意設(shè)計的研究、對客戶形象的視覺傳遞、對應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
舉例:
A系統(tǒng)從數(shù)據(jù)庫中獲取數(shù)據(jù),經(jīng)過處理后,導(dǎo)出系統(tǒng)B需要的文件,系統(tǒng)B讀取文件,經(jīng)過業(yè)務(wù)處理后存放到數(shù)據(jù)庫中。
每天夜間12:00-2:00之間進(jìn)行。
? 架構(gòu)
Spring Batch使用三層架構(gòu),三層分別為應(yīng)用、核心和基礎(chǔ)服務(wù)。
應(yīng)用層:包含所有的批處理作業(yè),通過Spring框架管理程序員自定義的代碼。應(yīng)用層是用戶寫的批處理任務(wù)。
核心層:包含Spring Batch啟動和控制所需要的核心類,核心層包含執(zhí)行和控制任務(wù)必須的核心類。如JobLauncher、Job和Step的實現(xiàn)。
基礎(chǔ)架構(gòu)層:應(yīng)用和核心層基于一層公用的基礎(chǔ)服務(wù)?;A(chǔ)服務(wù)包括通用的Reader,Writers,服務(wù)處理。(RetryTemplate重試模板,RepeatReader重復(fù)模板)可以被應(yīng)用層核心層使用。
? 優(yōu)勢
Spring Batch 是 SpringSource 和 Accenture(埃森哲)合作開發(fā)的。Accenture 在批處理架構(gòu)上有著豐富的工業(yè)級別的經(jīng)驗,貢獻(xiàn)了之前專用的批處理體系框架(這些框架歷經(jīng)數(shù)十年研發(fā)和使用,為Spring Batch提供了大量的參考經(jīng)驗);SpringSource則有著深刻的技術(shù)認(rèn)知和Spring框架編程模型。
Spring Batch 框架通過提供豐富的即開即用的組件、和高可靠性、高擴(kuò)展性的能力,使得開發(fā)批處理應(yīng)用的人員專注于業(yè)務(wù)的處理,