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