日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBatch批处理框架入门(一)

發布時間:2025/1/21 javascript 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBatch批处理框架入门(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

SpringBatch簡介

批處理場景

批處理需求

?SpringBatch使用場景

SpringBatch架構介紹

SpringBatch分層架構如下

SpringBatch 總體架構

SpringBatch基于Mysql初始化表


SpringBatch簡介

????????Spring Batch是一個輕量級,全面的批處理框架,旨在開發對企業系統日常運營至關重要的強大批處理應用程序。Spring Batch建立在人們期望的Spring框架特性(生產力,基于POJO的開發方法和普遍的易用性)的基礎上,同時使開發人員可以在必要時輕松訪問和利用更高級的企業服務。 劃重點:Spring Batch不是一個調度框架,而是批處理框架。

批處理場景

????????在大型企業中,由于業務復雜、數據量大、數據格式不同、數據交互格式繁雜,并非所有的操作都能通過交互界面進行處理。而有一些操作需要定期讀取大批量的數據,然后進行一系列的后續處理。這樣的過程就是“批處理”

批處理應用通常有以下特點:

  • 數據量大,從數萬到數百萬甚至上億不等;
  • 整個過程全部自動化,并預留一定接口進行自定義配置;
  • 這樣的應用通常是周期性運行,比如按日、周、月運行;
  • 對數據處理的準確性要求高,并且需要容錯機制、回滾機制、完善的日志監控等

批處理需求

批處理作業兩個典型特征是批量執行與自動執行(需要無人值守):前者能夠處理大批量數據的導入、導出和業務邏輯計算;后者無需人工干預,能夠自動化執行批量任務。

關注其基本功能之外,還需要關注如下的幾點

  • 健壯性:不會因為無效數據或錯誤數據導致程序崩潰;
    • 可靠性:通過跟蹤、監控、日志及相關的處理策略(重試、跳過、重啟)實現批作業的可靠執行;
    • 擴展性:通過并發或者并行技術實現應用的縱向和橫向擴展,滿足海量數據處理的性能需求目前批處理框架SpringBatch正好可以滿足以上需求。

?SpringBatch使用場景

  • 從數據庫,文件或隊列中讀取大量記錄。
  • 以某種方式處理數據。
  • 以修改后的形式寫回數據

其數據流轉示意圖如下:

?Spring Batch提供了可重用的功能,這些功能對于處理大量記錄至關重要,包括日志記錄/跟蹤,事務管理,作業處理統計信息,作業重啟,跳過和資源管理。


SpringBatch架構介紹

SpringBatch分層架構如下

????????

這種分層的體系結構突出了三個主要的高級組件:應用程序,核心和基礎結構。

  • 該應用程序包含開發人員使用Spring Batch編寫的所有批處理作業和自定義代碼。
  • 批處理核心包含啟動和控制批處理作業所需的核心運行時類。它包括實現 JobLauncher,Job和Step。
  • ?基礎結構包含公用的讀取器和寫入器以及服務(例如RetryTemplate),應用程序開發人員(例如ItemReader和的讀取器和寫入器ItemWriter)和核心框架本身(重試,這是它自己的庫)都使用它們。

SpringBatch 總體架構

spring batch總體架構如下:

?在spring batch中一個job可以定義多個步驟step,在每一個step里面可以定義其專屬的ItemReader用于讀取數據,ItemProcesseor用于處理數據,ItemWriter用于寫數據,而每一個定義的job則都在JobRepository里面,我們可以通過JobLauncher來啟動某一個job

SpringBatch基于Mysql初始化表

當我們在使用SpringBatch時候,需要在數據庫中初始化9張表,以保證我們SpringBatch可以正常使用。初始化表sql語句是在我們的spring-batch-core

下面的schema-mysql.sql文件。具體表名如下:

  • batch_job_execution
  • batch_job_execution_context
  • batch_job_execution_params
  • batch_job_execution_seq
  • batch_job_instance
  • batch_job_seq
  • batch_step_execution
  • batch_step_execution_context
  • batch_step_execution_seq

以上對SpringBatch是做什么以及應用場景做了簡單介紹,下一章我們將對SpringBatch核心類做進一步介紹。如果大家喜歡我的文章可以一鍵三連,如果大家有什么不懂得可以進微信群來探討。

總結

以上是生活随笔為你收集整理的SpringBatch批处理框架入门(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。