并行弹簧批作业的推荐方法

时间:2014-10-10 17:23:55

标签: spring spring-batch spring-integration

Spring Batch Integration文档介绍了如何使用远程分块和分区步骤,参见

http://docs.spring.io/spring-batch/trunk/reference/html/springBatchIntegration.html#externalizing-batch-process-execution

我们的工作不包括简单的读者/处理器/写入器步骤。因此,我们希望简单地让整个作业并行运行,每个作业都被分配到不同的分区。

Spring Batch中是否已存在此模式?或者我是否需要实现自己的JobLauncher来维护一个奴隶池来启动工作?

干杯, 门诺

1 个答案:

答案 0 :(得分:3)

Spring Batch专门处理不处理作业编排的位置(您的问题从根本上讲是这样的)。对于这样的事情,有几种方法:

  • 分布式调度程序 - 大多数分布式调度程序都能够在多个节点上执行任务。例如,Quartz具有分布式模式。
  • 使用远程分区进行编排 - 远程分区将完整的Spring Batch步骤作为从属执行。这些步骤没有理由不能成为执行工作的工作步骤。
  • 消息驱动的作业启动 - Spring Batch Integration(Spring Batch的子模块)提供了通过消息启动作业的工具。另一种方法是让一组奴隶监听队列,等待消息发起作业。您必须以某种方式处理奴隶之间的负载平衡等问题,但这是处理作业编排的另一种常见方法。