SpringBatch官方自帶文檔對遠程Step的配置開發寫得不盡詳細,對很多新手來說要配置一個可以運行的遠程Step可能比較困難。本篇文章的立足點在於讓新手快速的上手配置遠程Step,而且本篇也是SpringBatch分佈式服務開發的基礎。
一、遠程Step原理簡介
遠程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配置無特殊
三、StepB-Slave配置
Slave監聽requests隊列,並從隊列中獲取數據,進行業務邏輯處理,寫數據,並最終將處理結果寫入replies隊列。
MQ配置(與Master不同有個監聽配置)
chunkHandler配置
ItemPocessor配置無特殊
ItemWriter配置無特殊
注意:遠程Step是SpringBatch分佈式開發基礎,歡迎大家關注我的頭條號,後續會放出分佈式開發相關配置。
相關推薦
推薦中...