一文輕鬆搞定批處理框架 Spring Batch
【本文轉自部落格園 作者:張鋒 原文連結:https://www.cnblogs.com/skyme/p/7524764.html】
什麼是批處理?
在現代企業應用當中,面對複雜的業務以及海量的資料,除了通過龐雜的人機互動介面進行各種處理外,還有一類工作,不需要人工干預,只需要定期讀入大批量資料,然後完成相應業務處理並進行歸檔。這類工作即為“批處理”
為什麼使用Spring Batch
Spring Batch 作為 Spring 的子專案,是一款基於 Spring 的企業批處理框架。通過它可以構建出健壯的企業批處理應用。Spring Batch 不僅提供了統一的讀寫介面、豐富的任務處理方式、靈活的事務管理及併發處理,同時還支援日誌、監控、任務重啟與跳過等特性,大大簡化了批處理應用開發,將開發人員從複雜的任務配置管理過程中解放出來,使他們可以更多地去關注核心的業務處理過程。
另外我們還需要知道,Spring Batch 是一款批處理應用框架,不是排程框架。它只關注批處理任務相關的問題,如事務、併發、監控、執行等,並不提供相應的排程功能。因此,如果我們希望批處理任務定期執行,可結合 Quartz 等成熟的排程框架實現。
Spring Batch的整體架構
分三層:應用層,核心層,基礎設施層。應用層包括所有的batch任務和使用者開發的程式碼。核心層包括在執行期執行一個任務所需要的類,例如:JobLauncher,Job和Step的實現。應用和核心層都在基礎設施層之上,基礎設施層包括通用的讀寫器(readers and writers)以及如RetryTemplate等服務。
Spring Batch 結構
Spring Batch 流程
Step執行過程
應用場景
- 定期提交批處理任務
- 併發批處理:並行執行任務
- 分階段,企業訊息驅動處理
- 高併發批處理任務
- 失敗後手動或定時重啟
- 按順序處理任務依賴(使用工作流驅動的批處理外掛)
- 區域性處理:跳過記錄(例如在回滾時)
- 完整的批處理事務:因為可能有小資料量的批處理或存在儲存過程/指令碼
後續計劃:
對現有資料量使用多執行緒的方式處理,根據業務量擴充套件,可以配置成多程式加多執行緒方式處理。對於海量資料,使用叢集,短期內應該不會達到。
備註
官網:https://projects.spring.io/spring-batch/
相關介紹:http://blog.jobbole.com/109857/
https://www.ibm.com/developerworks/cn/java/j-lo-springbatch1/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31137683/viewspace-2157480/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring Boot 之 Spring Batch 批處理實踐Spring BootBAT
- 《Spring Batch 權威指南》之“批處理和 Spring”SpringBAT
- Spring Batch 基本的批處理指導原則SpringBAT
- 配置 Spring Batch 批處理失敗重試機制SpringBAT
- Dynamics 365 Web API 批處理(batch requests)WebAPIBAT
- 一文輕鬆搞定 tarjan 演算法(二)演算法
- Spring Batch + JPA 處理 Excel 檔案教程SpringBATExcel
- 使用Kafka分割槽擴充套件Spring Batch大資料排程批處理 – ArnoldKafka套件SpringBAT大資料
- Java後端開發中的任務排程:使用Spring Batch實現批處理Java後端SpringBAT
- 資料共享-spring batch(9)上下文處理SpringBAT
- 如何輕鬆搞定光纖熔接
- Spring Boot整合Spring Cloud Task實現批處理操作Spring BootCloud
- 效率提升50倍,輕鬆處理大資料大資料
- Pandas缺失值處理 | 輕鬆玩轉Pandas(3)
- 如何在Java中輕鬆處理Emoji Unicode - UdayakumarJavaUnicode
- 掌握BeanShell,輕鬆處理jmeter中的資料BeanJMeter
- 一文搞定 Spring Data JPASpring
- 輕鬆理解 Spring AOPSpring
- 分散式事務最終一致性-CAP框架輕鬆搞定分散式框架
- 結合 AOP 輕鬆處理事件釋出處理日誌事件
- 輕鬆搞定專案流程自動化
- 60萬行的Excel資料,Python輕鬆處理ExcelPython
- C++ 異常處理機制詳解:輕鬆掌握異常處理技巧C++
- MySQL8.0輕鬆搞定GTID組複製MySql
- 3D 穿梭效果?使用 CSS 輕鬆搞定3DCSS
- Jenkins部署安裝,輕鬆三步搞定Jenkins
- 批處理概述
- BI與SaaS碰撞,讓資料處理更加輕鬆(下)
- 面對眾多資料難以下手?資料預處理讓你輕輕鬆鬆“超車”
- 一文讓你輕鬆掌握 HTTPSHTTP
- 有什麼專案管理軟體可以幫助專案經理輕鬆搞定?專案管理
- 陪你解讀Spring Batch(一)Spring Batch介紹SpringBAT
- 上億條資料,OurwayBI也能輕鬆搞定
- 一份配置,輕鬆搞定Vue表單渲染Vue
- 輕鬆搞定專案管理軟體、分配任務專案管理
- MySQL8.0輕鬆搞定GTID主從複製MySql
- MySQL8.0輕鬆搞定GTID主主複製MySql
- Spring Boot整合Spring BatchSpring BootBAT