大量資料也不在話下,Spring Batch並行處理四種模式初探
阿新 • • 發佈:2020-09-14
# 1 前言
> 歡迎訪問[南瓜慢說 www.pkslow.com](https://www.pkslow.com/)獲取更多精彩文章!
`Spring相關文章:`[Springboot-Cloud](https://www.pkslow.com/categories/springboot)
前面寫了一篇文章《[通過例子講解Spring Batch入門,優秀的批處理框架](https://www.pkslow.com/archives/spring-batch-introduction)》講解`Spring Batch`入門,但要發揮它的作用,並行處理不能不瞭解。
# 2 四種模式
大多數情況下,單執行緒、單程序的`Spring Batch`已經能滿足你的需求。在我們走向更復雜的特性之前,先看看簡單的能不能用,`Keep it Simple and Stupid`。
不過,當你確定要使用並行處理時,`Spring Batch`也提供了多種選擇。整體上分為兩大類:
- (1)單程序、多執行緒
- (2)多程序
細分如下:
- (1)多執行緒的`Step`(單程序)
- (2)並行的`Steps`(單程序)
- (3)遠端分塊(多程序)
- (4)遠端分割槽(多程序)
光從名字看,很難理解它們之間的差別,我們來一一介紹吧。
## 2.1 多執行緒的Step
通過提供一個`TaskExecutor`來執行,而`TaskExecutor`是可以自定義的,我們可以提供一個基於執行緒池的`TaskExecutor`,則可以實現多執行緒處理。
```java
@Bean
public TaskExecutor taskExecutor(){
return new SimpleAsyncTaskExecutor("spring_batch");
}
@Bean
public Step sampleStep(TaskExecutor taskExecutor) {
return this.stepBuilderFactory.get("sampleStep