在大型企業(yè)中,由于業(yè)務(wù)復(fù)雜、數(shù)據(jù)量大、數(shù)據(jù)格式不同、數(shù)據(jù)交互格式繁雜,并非所有的操作都能通過交互界面進(jìn)行處理。而有一些操作需要定期讀取大批量的數(shù)據(jù),然后進(jìn)行一系列的后續(xù)處理。這樣的過程就是“批處理”。
批處理應(yīng)用通常有以下特點(diǎn):
數(shù)據(jù)量大,從數(shù)萬到數(shù)百萬甚至上億不等;
整個(gè)過程全部自動(dòng)化,并預(yù)留一定接口進(jìn)行自定義配置;
這樣的應(yīng)用通常是周期性運(yùn)行,比如按日、周、月運(yùn)行;
對數(shù)據(jù)處理的準(zhǔn)確性要求高,并且需要容錯(cuò)機(jī)制、回滾機(jī)制、完善的日志監(jiān)控等。
什么是Spring batch
Spring batch是一個(gè)輕量級的全面的批處理框架,它專為大型企業(yè)而設(shè)計(jì),幫助開發(fā)健壯的批處理應(yīng)用。Spring batch為處理大批量數(shù)據(jù)提供了很多必要的可重用的功能,比如日志追蹤、事務(wù)管理、job執(zhí)行統(tǒng)計(jì)、重啟job和資源管理等。同時(shí)它也提供了優(yōu)化和分片技術(shù)用于實(shí)現(xiàn)高性能的批處理任務(wù)。
它的核心功能包括:
事務(wù)管理
基于塊的處理過程
聲明式的輸入/輸出操作
啟動(dòng)、終止、重啟任務(wù)
重試/跳過任務(wù)
基于Web的管理員接口