SpringBatch-分佈式開發一(官方文檔的補充)

XML 技術 用Java打醬油 用Java打醬油 2017-09-12

SpringBatch官方自帶文檔對遠程Step的配置開發寫得不盡詳細,對很多新手來說要配置一個可以運行的遠程Step可能比較困難。本篇文章的立足點在於讓新手快速的上手配置遠程Step,而且本篇也是SpringBatch分佈式服務開發的基礎。

一、遠程Step原理簡介

SpringBatch-分佈式開發一(官方文檔的補充)

遠程Slave結構圖

  • 遠程Step是一個把Step進行技術分割的工作,不需要對處理數據的結構有明確瞭解。任何輸入源都能夠使用單進程讀取並在動態發送給遠程的工作進程。遠程進程實現了監聽者模式,反饋請求、處理數據,最終將處理結果異步返回。

  • 如上圖所示, StepB-Master是一個遠程步驟,在Local( 本地機器)中執行數據讀取操作,並將數據發送到MQ的“requests”隊列,Remote(遠程機器)的StepB-Slave監聽“requests”隊列,從該隊列中拉取數據,並進行數據處理,數據寫入,並將處理結果寫入MQ的“replies”隊列,Local的StepB-Master

    監聽“replies”隊列,並將處理結果更新SpringBatch的倉庫中。

  • 注:這裡隊列的名稱和下面XML中配置的名稱是一致的。

二、StepB-Master配置

Master讀取數據,並將數據寫到MQ中,是不需要做業務邏輯處理和數據寫入操作的。所以重點是

  • ItemWriter配置

  • MQ配置

  • ItemReader配置無特殊

SpringBatch-分佈式開發一(官方文檔的補充)

Master配置一

SpringBatch-分佈式開發一(官方文檔的補充)

Master配置二

三、StepB-Slave配置

Slave監聽requests隊列,並從隊列中獲取數據,進行業務邏輯處理,寫數據,並最終將處理結果寫入replies隊列。

  • MQ配置(與Master不同有個監聽配置)

  • chunkHandler配置

  • ItemPocessor配置無特殊

  • ItemWriter配置無特殊

SpringBatch-分佈式開發一(官方文檔的補充)

Slave配置一

SpringBatch-分佈式開發一(官方文檔的補充)

Slave配置二

注意:遠程Step是SpringBatch分佈式開發基礎,歡迎大家關注我的頭條號,後續會放出分佈式開發相關配置。

相關推薦

推薦中...