如何使用Spring Batch实现步骤的分布式处理

Ash*_*NCS 6 java parallel-processing workflow spring spring-batch

使用Spring批处理,我希望我的步骤可以跨节点分布,并为给定的作业执行它们.我有一个用例,其中一个作业有多个步骤,每个步骤可以在托管应用程序的多个节点中运行.有人试过吗?任何想法都将受到高度赞赏!

lub*_*nac 6

有两种方法:

  1. 远程分块- 您在主节点上读取数据并在从节点上处理/写入它们

  2. 远程分区- 您将数据集分割成多个分区,并在远程节点中读取/处理/写入您的分区。所以 master 只是协调和决定如何切片分区。

我写了一本关于 Enterprise Spring 的书,并创建了这两种方法的示例。这些托管在 Github 上。查看示例 0939 和 0940。不幸的是,如何手动运行它们的所有注释都只在书中。希望您能够从集成测试中弄清楚这一点。

先决条件是具有可用于主从通信的消息传递中间件(例如 ActiveMQ 或 HornetQ),并且它还使用 Spring Integration 来促进这种通信。